Erklärung Lauftextquellcode

sonnenprinz

Grünschnabel
Hallo,

es wäre echt nett, wenn mir hier jemand eine genaue Erklärung zu diesem Lauftextquellcode geben könnte. Ein bisschen weiß ich, aber nicht genau die Zusammenhänge.
Ich bin noch ein Anfänger in JavaScript.
Danke im voraus.

<SCRIPT language="JavaScript" type="text/javascript">
<!--
var Text="+++ Hier kommt dein Text rein +++ ";
var Geschwindigkeit = 75;
var Breite = 150;
var TextLaenge = Text.length;
var Position = 1 - Breite;

function StatusLauftext()
{
Position++
var Textzustand = "";
if (Position == TextLaenge)
{
Position = 1 -Breite;
}
if (Position < 0)
{
for (var Zaehler = 1; Zaehler <= Math.abs(Position); Zaehler++)
{
Textzustand = Textzustand + " ";
}
Textzustand = Textzustand + Text.substring(0,Breite - Zaehler + 1);
}
else
{
Textzustand = Textzustand + Text.substring(Position,Breite + Position);
}
window.status = Textzustand;
setTimeout("StatusLauftext()",Geschwindigkeit);
}
// -->
</SCRIPT>
 
dann wollen wir mal. Ich schreib einfach Kommentare in den Quellcode
PHP:
<SCRIPT language="JavaScript" type="text/javascript">
    var Text="+++ Hier kommt dein Text rein +++ ";
    var Geschwindigkeit = 75; //Die Scrollgeschwindigkeit - je höher desto langsamer
    var Breite = 150; 
    var TextLaenge = Text.length; //hier: 34
    var Position = 1 - Breite;    //Startposition; hier: -149 (außerhalb des sichtbaren bereichs)
    
    function StatusLauftext(){
      Position++;           //Position um einen Punkt erhöhen
      var Textzustand = ""; //der Ausgabestring
      
      if (Position == TextLaenge){ //wenn die Position gleich der Textlänge ist
        Position = 1 -Breite;      //wird die Position praktisch resetted - wenn 
                                   //das fehlt, läuft die Schrift nur EINMAL durch
      }
      
      if (Position < 0){ //wenn die Position kleiner 0 ist (Startwert hier -149)
        /* wird solange eine "leerzeichen" in die Ausgabe geschrieben, bis die
           Variable Zähler gleich der Position ist. Math.abs() beseitigt das 
           Vorzeichen - man könnte genausogut einfach position*(-1) verwenden */
        for (var Zaehler = 1; Zaehler <= Math.abs(Position); Zaehler++){ 
          Textzustand = Textzustand + " ";
        }
        /* Jetzt wird die Zeichenkette ermittelt, welche an den Ausgabestring angehangen
           werden soll.Beim ersten Durchlauf hat "Zaehler" den Wert 149, beim zweiten Druchlauf
           148 usw...
           Text.substring(0,(150-149+1)) = Text.substring(0,2) liefert beim ersten Aufruf also
           '++', beim zweiten '+++' usw...
        */
        Textzustand = Textzustand + Text.substring(0,Breite - Zaehler + 1);
        
        /* Wenn die Postion nicht kleiner 0 ist (das ist dann wenn der String an
           der Linkeseite "festhängt") werden der Ausgabestring um jeweils 1 Zeichen
           verkleinert. Das erzeugt den Effekt als ob der String rausläuft. Postion ist
           beim Ankommen am linken Ende 0, dann 1, 2 usw... 
        */
      }else{
        Textzustand = Textzustand + Text.substring(Position,Breite + Position);
      }
    
    
      // Der jeweilig Tring wird in die Statuszeile geschrieben
      window.status = Textzustand;
      
      /* Die Funktion ruft sich selbst alle 0,075 Sekunden auf und durchläuft
         den gesamten Aufruf - dadurch wird die flüssige Bewegung simuliert... */
      setTimeout("StatusLauftext()",Geschwindigkeit);
    }
</SCRIPT>
Bei konkreten Fragen - einfach Nachfragen...

bye
 
Frage Lauftextquellcode

ich hätte mal eine frage zu dem lauftextquellcode und zwar habe ich folgenden:
<SCRIPT language="JavaScript" type="text/javascript">
<!--
var yourwords="Herzlich Willkommen auf meiner Homepage";
var speed=1000; var control=1;
function flash(){if (control==1){window.status=yourwords;control=0}
else{window.status="";control=1}setTimeout("flash();",speed)};
flash();
// -->
</SCRIPT>

ich würde gerne wissen, ob es die möglichkeit gibt, den text mit modifizierung diesen quelcodes durchlaufen zu lassen, weil bei dem hier blinkt der text nur. ich bräuchte nur den richtigen befehl an der richtigen stelle.
würde mich über hilfe sehr freune.
Danke schoneinmal im vorraus

MfG Julian
 

Neue Beiträge

Zurück