![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Timur Ametov, 31. 10. 2007, 17:57
Guten Abend,
ich hatte ohne großen Erfolg versucht, Größe eines Bildes mit einer Verzögerung zu ändern, ich meine damit, dass z.B. Breite des Bildes von 50 auf 100 mit zwischenschritten geändert wird
width = 50 -> 70 -> 85 -> 95 -> 100
Habe zwei Funktionen für diesen Zweck geschrieben
function changeicon(elem, width)
{
document.getElementById(elem).width=width;
}
function bigicon(elem)
{
window.setTimeout("changeicon('"+elem+"',55)", 100);
window.setTimeout("changeicon('"+elem+"',75)", 100);
window.setTimeout("changeicon('"+elem+"',85)", 100);
window.setTimeout("changeicon('"+elem+"',95)", 100);
window.setTimeout("changeicon('"+elem+"',100)", 100);
}
Aber so wirklich funktioniert das nicht, zwischenschritte sind nicht zu sehen. Und der Code sieht außerdem schrecklich aus. Gibt es vielleicht bessere Alternativen???
Danke Euch,
Tim(ur)
Die folgende Nachricht zum Thema stammt von: Cheatah, 31. 10. 2007, 18:11
Hi,
»» window.setTimeout("changeicon('"+elem+"',55)", 100);
hierdurch wird *jetzt* ein Timer gestartet, der in 100 Millisekunden etwas tut.
»» window.setTimeout("changeicon('"+elem+"',75)", 100);
Hierdurch wird *jetzt* ein Timer gestartet, der in 100 Millisekunden etwas tut.
»» window.setTimeout("changeicon('"+elem+"',85)", 100);
Hierdurch wird *jetzt* ... Ich denke, Du erkennst den Punkt.
»» Gibt es vielleicht bessere Alternativen???
Entweder berechnest Du die Zeiträume anders, oder - da Du keine millisekundengenau Abarbeitung annehmen kannst - Du startest den nächsten Timeout erst dann, wenn dessen Vorgänger abgearbeitet ist.
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
Die folgende Nachricht zum Thema stammt von: Timur Ametov, 31. 10. 2007, 18:25
»» Entweder berechnest Du die Zeiträume anders,
Ja, das dachte ich mir auch. Hatte einfach mit größeren Zeitabständen experimentiert. Aber, wie gesagt, ich sehe nur das es sich in dieser Wartezeit nichts tut und dann am Ende wird das Bild auf Endgröße vergrößert.
»» oder - da Du keine millisekundengenau Abarbeitung annehmen kannst - Du startest den nächsten Timeout erst dann, wenn dessen Vorgänger abgearbeitet ist.
Und wie mache ich das?
Timur
Die folgende Nachricht zum Thema stammt von: Cheatah, 31. 10. 2007, 18:30
Hi,
»» »» Entweder berechnest Du die Zeiträume anders,
»» Ja, das dachte ich mir auch. Hatte einfach mit größeren Zeitabständen experimentiert.
mit größeren, aber identischen? Nun, ob Du jetzt in hundert Millisekunden oder jetzt in hundert Jahren fünf Dinge machst, ändert nichts daran, dass diese fünf Dinge ziemlich schnell hintereinander passieren.
»» Aber, wie gesagt, ich sehe nur das es sich in dieser Wartezeit nichts tut und dann am Ende wird das Bild auf Endgröße vergrößert.
Wenn Du alle hundert Jahre etwas tun möchtest, das erste mal in hundert Jahren, in wie vielen Jahren tust Du dann das zweite Ding?
»» »» oder - da Du keine millisekundengenau Abarbeitung annehmen kannst - Du startest den nächsten Timeout erst dann, wenn dessen Vorgänger abgearbeitet ist.
»» Und wie mache ich das?
Den Aufruf von window.setTimeout() in die Funktion verlegen, von deren Abarbeitung der Aufruf abhängig ist. Also erst in hundert Jahren entscheiden, wie viele Jahre später Du das zweite Ding tun möchtest.
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
© 1998-2006
Impressum, Software: Classic Forum