SetTimeout / visibility
fly
- javascript
0 Kai Lahmann0 fly0 Kai Lahmann0 fly
Hi, Ich habe folgende Schleife:
for (i=1; i<antworten; i++)
{
document.all.antwort[i].style.visibility = 'visible';
document.all.antwort[i].style.visibility = 'hidden';
}
Nun möchte ich, dass jedes Element rund eine Sekunde zu sehen ist. Alle Elemente liegen an der selben stelle. Ich kann, wenn ich das untere auskommentiere alle Ebenen gleichzeitig sehen (also nix lesen) und so wie das jetzt ist werden die ganz schnell ein und wieder ausgeblendet, so dass man nix sieht.
Das beste wäre wenn man irgendwie sagen könnte die elemente sollen innerhalb von 15 Sekunden alle sichtbar geworden sein und auch wieder verschwunden sein. Die Anzahl der Elemente ist in "antworten" gespeichert.
Ich hab mir das so gedacht:
var time = 15000/ antworten;
for (i=1; i<antworten; i++)
{
document.all.antwort[i].style.visibility = 'visible';
window.setTimeout("document.all.antwort[i].style.visibility = 'hidden';",time);
}
aber irgendwie geht das so nicht.......
wär cool, wenn eine(r) nen Denkanstoss für mich hätte...
hi
document.all.antwort[i].style.visibility = 'visible';
....warum die MSIE-Only-Syntax?
Grüße aus Bleckede
Kai
Weil die zum Problem nicht relevant ist.
Aber ma ne Frage, NS verzichtet einfach nur auf das all und das style, oder???
hi
es geht mir nicht um Netscape 4, der ist tot. Aber Mozilla, Opera und viele andere (eben auch der MSIE) kennen eine von W3C abgesegnete Syntax mit document.getElementById().style.. bzw.
document.getElementsByTagName()[].style..
(je nachdem, was hier besser passt). Und diese sollte man statt des document.all verwenden oder zumindest zusätzlich verwenden. Nur der MSIE4 benötigt document.all (und ist nicht gerade mehr sehr verbreitet)
Grüße aus Bleckede
Kai
Jo danke ,... dann werd ich das mal ändern..... kannst Du mir auch bei dem eigentlichen Problem helfen???
hi
Jo danke ,... dann werd ich das mal ändern..... kannst Du mir auch bei dem eigentlichen Problem helfen???
versuch mal die eigentliche Zuweisung der CSS-Eigenschaft in eine Funktion zu setzen und diese dann von der setTimeout() aufrufen zu lassen - imho braucht der den Rückgabewert. Außerdem weiß ich gar nicht, welches Element mit document.all.antwort[i] gemeint ist - soweit ich mich an die MSIE-Syntax errinnere wäre das doch das i-te Element vom Type <antwort> oder so..!?
Grüße aus Bleckede
Kai