Gernot Back: Yet Another Ticker Script

Beitrag lesen

Noch ein Nachtrag:

Die Funktion init() sollte besser so aussehen:

  
function init() {  
    if(document.all) {  
      tck = document.all.ticker;  
    } else {  
      tck = document.getElementById('ticker');  
    }  
    var txt = tck.innerHTML;  
    do {  
      divisor++;  
      tck.innerHTML +=  ' ' + txt;  
    } while(tck.offsetWidth < screen.width*2);  
    step();  
}  

screen.width können alle relevanten Browser gleichermaßen auslesen; eine Fallunterscheidung erübrigt sich. Außerdem ist es besser geeignet als window.innerWidth, da ein Nutzer ja auch während des Betrachtens der Seite auf die Idee kommen könnte, sein Browserfenster zu vergrößern oder zu verkleinern.

Durch die Do-While-Schleife wird sichergestellt, dass der Inhalt des Ticker-Elementes auf jeden Fall einmal dupliziert wird (wichtig falls sowieso schon im einfachen Text mehr drin steht, als in das Doppelte der Bildschirmweite passt) und dass er in jedem Fall solange um sich selbst verlängert wird, bis er länger als dieses Doppelte der screen.width ist.

Nun kann sich der Nutzer das Fenster unterwegs so groß ziehen wie er will: Gesteuert durch die Variable divisor erfolgt in jedem Fall der horizontale Rücksprung nach dem Durchlauf eines kompletten Urprungstextes um seine entsprechende Weite, d. h. seine ursprüngliche offsetWidth und erscheint auch dahinter bildschirmfüllend oft wiederholt.

Schön zu beobachten ist das Springen, wenn man einen der Links in einem Browser anklickt, der diese dann mit einer gepunkteten Linie umrandet.

Gruß Gernot

P.S.: Den Versuch, das Tickersript für Netscape 4.X lauffähig zu machen, habe ich aufgegeben, es gibt da zu viele für diesen Ansatz notwendige CSS-Eigenschaften und Javascript-Methoden und -Eigenschaften für die es in diesem Browser keine Entsprechungen gibt.