Laufzeile

mle

Grünschnabel
Hallo,

ich habe eine Laufzeilencode

Code:
<script language="javascript">
<!--
function laufschrift (seed) {
           var msg = "JavaScript Workshop -- WS 2003/04";
           var out = "";  var j;  var cmd;
           if (seed > 100) { seed = 100; }
           if (seed > 0) {// seed Leerzeichen vor den Text schreiben:
                          for (j = 0; j < seed; j++) { out += " "; }
                          out += msg;
                          // Leerzeichen + Text in das Formularfeld fenster.scroll schreiben:
                          document.fenster.scroll.value = out;
                          // Funktion laufschrift mit seed-1 zeitverzoegert aufrufen:
                          seed=seed-1;
                          cmd= "laufschrift(" + seed + ")";
                          window.setTimeout(cmd, 150);
                         }
           else {        if (-seed < msg.length) {
                            // Text vorne abschneiden:
                            out = msg.substring(-seed,msg.length);
                            document.fenster.scroll.value = out;
                            seed=seed-1;
                            cmd = "laufschrift(" + seed + ")";
                            window.setTimeout(cmd,150);
                                                 }
                         else {
                            document.fenster.scroll.value = " ";
                            window.setTimeout("laufschrift(100)",150);
                              }
                }
}
// -->
</script>

nun möchte ich das in dieser laufzeilge zufällige verschiebung sind, d.h. mit jedem neuladen der seite soll sich der text in der laufzeile verschieben. Wie mache ich das?
 
Hi,

berechne im ersten Durchlauf der Funktion laufschrift mit Hilfe der Methoden random und round einen Zufallswert im Bereich von 0 bis zur Mitteilungslänge (msg.length) und speicher diesen in einer globalen Variablen, die beim Laden der Seite den Initialwert null zugewiesen bekommt.

Beispiel:
Code:
if(intRnd == null){
  intRnd = Math.round(Math.random()*msg.length);
}

Diesen Wert addierst du an entsprechender Stelle zur auszugebenden Mitteilungslänge. Weiterhin muss die die if-Bedingung zum Testen, ob der Text durchgelaufen ist, angepasst werden.

Ist der Text komplett durchgelaufen, muss die Zufallsvariable auf Null gesetzt werden.
Code:
if(-seed < msg.length-intRnd){
  // Text vorne abschneiden:
  out = msg.substring(-seed+intRnd,msg.length);
  document.fenster.scroll.value = out;
  seed=seed-1;
  cmd = "laufschrift(" + seed + ")";
  window.setTimeout(cmd,150);
}else{
  document.fenster.scroll.value = " ";
  intRnd = 0;
  window.setTimeout("laufschrift(0)",150);
}

Ciao
Quaese
 
Zurück