• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

mehrzeiliger "windticker"

goana

New member
hi,

ich möchte den "windticker" so ändern, dass er mehrzeilig wird. Dabei sollen die verschiedenen "messages" nacheinander mit einem Zeilenumbruch per "windticker" dargestellt werden. Ich hab schon einiges versucht, wie z.B. "breaks" einfügen, aber es funzt nicht. Er überschreibt die verschiedenen messages immer wieder und fängt keine neue Zeile an....

hier ist der code:

[c]
var i_space=-10
var i_message=0
var i_color=0
var myfont="Verdana"
var myfontsize="1"
var timer
var startstep=1
var step=1
var pause=3000

var message=new Array()
message[0]="texrt1"
message[1]="text2"
message[2]="text3"
var colo=new Array()
colo[0]="FFFF80"
colo[1]="FFFBBB"
colo[2]="FFFAAA"
colo[3]="FFFCCC"
colo[4]="FFBBBB"
colo[5]="FFAAAA"
colo[6]="FF9999"
colo[7]="FF8888"
colo[8]="FF7777"
colo[9]="FF6666"
colo[10]="FF4444"
colo[11]="FF3333"
colo[12]="FF2222"
colo[13]="FF0000"

function startspacing() {
if(i_space <=1 ) {
if(document.all) {
ticker.innerHTML="<span style='letter-spacing:"+i_space+"'><font size="+myfontsize+" face="+myfont+" color="+colo[i_color]+"><nobr><b> "+message[i_message]+"</b></nobr></font></span>";
}
if(document.layers) {
document.ticker.document.write("<span style='letter-spacing:"+i_space+"'><font size="+myfontsize+" face="+myfont+" color="+colo[i_color]+"><nobr><b> "+message[i_message]+"</b></nobr></font></span>");
}
i_space=i_space+startstep
i_color++
if (i_color>=13) {i_color=13}
timer=setTimeout("startspacing()",20)
}
else {
clearTimeout(timer)
showmessage()
}
}

function showmessage() {
clearTimeout(timer)
timer=setTimeout("spaceletters()",pause)
i_color=13
}

function spaceletters() {
if(i_space <=1000 ) {
if(document.all) {
ticker.innerHTML="<span style='letter-spacing:"+i_space+"'><font size="+myfontsize+" face="+myfont+" color="+colo[i_color]+"><nobr><b> "+message[i_message]+"</b></nobr></font></span>";
}
if(document.layers) {
document.ticker.document.write("<span style='letter-spacing:"+i_space+"'><font size="+myfontsize+" face="+myfont+" color="+colo[i_color]+"><nobr><b> "+message[i_message]+"</b></nobr></font></span>");
}
i_color--
if (i_color<=0) {i_color=0}
step++
i_space=i_space+step
timer=setTimeout("spaceletters()",20)
}
else {
i_message++
if (i_message==message.length) {i_message=0}
i_space=1
i_space=-10
startstep=1
step=1
clearTimeout(timer)
startspacing()
}
}
[/c]

Bin für jeden Hinweis dankbar...

goana
 
→ hinweise
· du könntest nach jeden message durchlauf den layer via absoluter positionierung n stück weiter nach unten schieben(neue array's schreiben und css definieren)
· du könntest mehrere layer machen, einfach nur die id umschreiben und schon bist du fertig, natürlich hast du dann mehrere große scripts.
(für das nacheinander setzt du halt n setTimeout am ende der vorher laufenden scripts)
 
Zuletzt bearbeitet:
hi Prinz,

vielen Dank für den Tipp mit der Positionierung....funzt super. Aber ich hab jetzt noch ein anderes Problem.

Nach dem Aufscrollen des Textes verschwindet dieser wieder, wenn der nächste Textarray eingelesen wird. Ich möchte aber den vorherigen Text sichtbar lassen. Wie erreiche ich denn das?
Und ausserdem läuft das script unendlich lange durch. Ich möchte den Text aber nur einmal mit diesem Script darstellen.
Ich hab schon mal ne for-Schleife eingebaut, aber es funzte nicht....

Irgend eine Idee??

hier ist der code:
[c]
var i_space=-20
var i_message=0
var i_color=0
var myfont="Verdana"
var myfontsize="1"
var timer
var startstep=1
var step=1
var pause=3000
var ypos=220
var xpos=40

var message=new Array()
message[0]="...."
message[1]="a warm welcome to all"
message[2]="visiting"
message[3]="Goanamudda´s World"
message[4]="...."
message[5]="please choose a topic and have a nice time"
message[6]="...."

var colo=new Array()
colo[0]="FFFF80"
colo[1]="FFFBBB"
colo[2]="FFFAAA"
colo[3]="FFFCCC"
colo[4]="FFBBBB"
colo[5]="FFAAAA"
colo[6]="FF9999"
colo[7]="FF8888"
colo[8]="FF7777"
colo[9]="FF6666"
colo[10]="FF4444"
colo[11]="FF3333"
colo[12]="FF2222"
colo[13]="FF0000"

function startspacing() {
if(i_space <=1 ) {
if(document.all) {
ticker.innerHTML="<span style='position:absolute; top:"+ypos+"; left:"+xpos+"; visibility:visible; letter-spacing:"+i_space+"'><nobr><font size="+myfontsize+" face="+myfont+" color="+colo[i_color]+"><b> "+message[i_message]+"</b></font></nobr></span>";
}
if(document.layers) {
document.ticker.document.write("<span style='position:absolute; top:"+ypos+"; left:"+xpos+"; visibility:visible; letter-spacing:"+i_space+"'><nobr><font size="+myfontsize+" face="+myfont+" color="+colo[i_color]+"><b> "+message[i_message]+"</b></font></nobr></span>");
}
i_space=i_space+startstep
i_color++
if (i_color>=13) {i_color=13}
timer=setTimeout("startspacing()",80)
}
else {
clearTimeout(timer)
showmessage()
}
}

function showmessage() {
clearTimeout(timer)
timer=setTimeout("spaceletters()",pause)
i_color=13
i_message++
ypos=ypos+15;
if (i_message==message.length) {i_message=0}
i_space=1
i_space=-10
startstep=1
step=1
clearTimeout(timer)
startspacing()
}
[/c]


goana
 
ganz klar das der text immer wieder verschwindet weil er immer wieder in den gleichen div/ layer schreibt...

hab dir mal was umgeschrieben im ie läufts hab es aber nich im NS probiet...

wenn du neue messeages einfügen willst mußt du dann allerdings auch neue case's dvi's/layer's dazuschreiben

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
<HEAD>
 <script>

var i_space=-20 
var i_message=0 
var i_color=0 
var myfont="Verdana" 
var myfontsize="1" 
var timer 
var startstep=1 
var step=1 
var pause=3000 
var ypos=220 
var xpos=40 

var message=new Array() 
message[0]="...." 
message[1]="a warm welcome to all" 
message[2]="visiting" 
message[3]="Goanamudda´s World" 
message[4]="...." 
message[5]="please choose a topic and have a nice time" 
message[6]="...."
message[7]="Fin"

var colo=new Array() 
colo[0]="FFFF80" 
colo[1]="FFFBBB" 
colo[2]="FFFAAA" 
colo[3]="FFFCCC" 
colo[4]="FFBBBB" 
colo[5]="FFAAAA" 
colo[6]="FF9999" 
colo[7]="FF8888" 
colo[8]="FF7777" 
colo[9]="FF6666" 
colo[10]="FF4444" 
colo[11]="FF3333" 
colo[12]="FF2222" 
colo[13]="FF0000" 

function startspacing() { 
if(i_space <=1 ) { 
if(document.all) {
inputIE="<span style='position:absolute; top:"+ypos+"; left:"+xpos+"; visibility:visible; letter-spacing:"+i_space+"'><nobr><font size="+myfontsize+" face="+myfont+" color="+colo[i_color]+"><b> "+message[i_message]+"</b></font></nobr></span>";

switch(i_message)   // hier wird geprüft welcher nachricht die function ist und der entsprechende tag angesprochen
{
 case 0: document.all.ticker0.innerHTML = inputIE;break;
 case 1: document.all.ticker1.innerHTML = inputIE;break;
 case 2: document.all.ticker2.innerHTML = inputIE;break;
 case 3: document.all.ticker3.innerHTML = inputIE;break;
 case 4: document.all.ticker4.innerHTML = inputIE;break;
 case 5: document.all.ticker5.innerHTML = inputIE;break;
 case 6: document.all.ticker6.innerHTML = inputIE;break;
 case 7: document.all.ticker7.innerHTML = inputIE;break;
default:
 break;
}
} 
if(document.layers) { 
inputN = "<span style='position:absolute; top:"+ypos+"; left:"+xpos+"; visibility:visible; letter-spacing:"+i_space+"'><nobr><font size="+myfontsize+" face="+myfont+" color="+colo[i_color]+"><b> "+message[i_message]+"</b></font></nobr></span>";

switch(i_message)   // hier wird geprüft welcher nachricht die function ist und der entsprechende tag angesprochen
{
 case 0: document.ticker0.document.write(inputN);break;
 case 1: document.ticker1.document.write(inputN);break;
 case 2: document.ticker2.document.write(inputN);break;
 case 3: document.ticker3.document.write(inputN);break;
 case 4: document.ticker4.document.write(inputN);break;
 case 5: document.ticker5.document.write(inputN);break;
 case 6: document.ticker6.document.write(inputN);break;
 case 7: document.ticker7.document.write(inputN);break;
default:
 break;
}

} 
i_space=i_space+startstep 
i_color++ 
if (i_color>=13) {i_color=13} 
timer=setTimeout("startspacing()",80) 
} 
else { 
clearTimeout(timer) 

if( message[i_message] != "Fin")    // hier wird geprüft ob es sich um die letzte nachricht handelt wenn ja wird die function nicht ausgeführt
{
showmessage()
}

} 
}

function showmessage() { 
clearTimeout(timer)
timer=setTimeout("spaceletters()",pause)
i_color=13
i_message++
ypos=ypos+15;
if (i_message==message.length) {i_message=0}
i_space=1
i_space=-10
startstep=1
step=1
clearTimeout(timer)
startspacing() 
} 



 </script>
</HEAD>
<BODY onLoad="startspacing()" bgcolor="black">
<div id="ticker0"></div>
<div id="ticker1"></div>
<div id="ticker2"></div>
<div id="ticker3"></div>
<div id="ticker4"></div>
<div id="ticker5"></div>
<div id="ticker6"></div>
<div id="ticker7"></div>

<layer name="ticker0"></layer>
<layer name="ticker1"></layer>
<layer name="ticker2"></layer>
<layer name="ticker3"></layer>
<layer name="ticker4"></layer>
<layer name="ticker5"></layer>
<layer name="ticker6"></layer>
<layer name="ticker7"></layer>


</BODY>
</HTML>
 
Zurück
Oben