Robert: for-schleife mit zeitverzögerung

Hallo

ich habe diese Schleife

for (i=5; i>=-185; i-=4) {
   document.getElementById('menu').style.top=i
}

wie kann ich es realisieren das bei jedem Durchlauf eine Pause von X Milisekunden eingehalten wird bevor der nächste Durchlauf startet?

mfg Robb

  1. wie kann ich es realisieren das bei jedem Durchlauf eine Pause von X Milisekunden eingehalten wird bevor der nächste Durchlauf startet?

    mfg Robb

    mit while

    1. mit while

      while(i>=-185)) {
      i-=4;
      document.getElementById('menu').style.top=i
      }

      und nun?

    2. Moin!

      wie kann ich es realisieren das bei jedem Durchlauf eine Pause von X Milisekunden eingehalten wird bevor der nächste Durchlauf startet?
      mit while

      NEIN, um Gottes Willen! Bloß keine Zeitverzögerung mit Schleifen in Javascript konstruieren! Das killt den Benutzerrechner performancmäßig mit ziemlicher Sicherheit - außerdem ist es extrem unzuverlässig, weil es von der Rechnergeschwindigkeit abhängt. Den Fehler haben die ersten Spiele gemacht, die auf neueren Rechnern unspielbar schnell wurden.

      Wenn es um Zeitverzögerung geht, nimmt man setTimeout() oder setInterval().

      http://selfhtml.teamone.de/javascript/objekte/window.htm#set_timeout

      - Sven Rautenberg

      --
      Signatur oder nicht Signatur - das ist hier die Frage!
  2. Hi,

    am besten mit window.setTimeout();

    function XY(i)
    {
       document.getElementById('menu').style.top=i;
       i-=4;
       if(i >= -185)
          window.setTimeout("XY("+i+")", 1000);

    }

    XY(5);

    ich würde es so machen. XY ist eine Funktion die nennen kannst wie du willst! Dann aber ich im setTimeout ändnern.

    Die Funktion wird erstmals mit dem Wert 5 aufgerufen, und dem Menu zugewiesen. die 1000 sind Milisekunden, sind also 1 Sekunde!

    Also nach einer Sekunde wird die Funktion erneut aufgerufen, solange bis i >= -185 ist.

    Gruß
    Christian