Zeitfuktionen in JS?

  • Hallo,
    ich möchte ein div "einblenden"
    Also einfach mit width 0 anfangen und auf 200 erhöhen.

    Ich stelle mir die Funktion so vor:

    if(i < 200){
    i++;
    document.getElementById("top").style.width = i;
    setTimeout(unsichtbar(),20);
    }


    Aber da fuktioniert nichts :)
    Wie kann ich das besser machen?
    Vorallem das er nicht so schnell die width erhöht?

    mfg

  • ne if-abfrage läuft auch nur einmal durch.
    du müsstest mal nach einer for-schleife suchen..

    http://de.selfhtml.org/javascript/sprache/schleifen.htm

  • also die grundidee ist so schon richtig.. und driver, das geht so nicht wirklich mit ner for-schleife... (die zählt noch schneller, als des timeout)
    hab hier mal was vorbereitet..

    wobei unsichtbar nen doofer name ist, wenn man was sichtbar mach :)

  • ähm, aber da müsstest du dann für jeden schritt auf
    den button drücken. bei "einschweben" versteh ich ein
    automatisches -und sowas musst in ner schleife machen.
    ob jetzt for oder while is dabei vermutlich egal.

    evtl kannst ja in die schleife auch den timeout einbinden :|

    oder versteh ich etz wat falsch ?

  • nee driver, da rufste mit einem klick die funktion auf und dann ruft die sich selber durch den timeout auf und bildet so ne eigene schleife...
    mit ner richtigen schleife (for oder while) würd die schleife so schnell durchlaufen werden, dass das div nur den endzustand anzeigt.
    in javasript kenne ich keine funktion wie sleep() in php.. gäbe es sowas in javascript ginge es auch mit ner echten schleife

    hier das beispiel mit ner schleife:

    damit ist das ziel nicht wirklich erreicht :)

  • ah ok, etz is logisch. konnte mit der timeout funktion nicht viel
    anfangen. kenn sowas nur aus qbasic (sleep) und da wird ja nur
    ne pause gemacht...