vanHelsing: Animation

Hallo!
ich möchte eine einfache Animation einer Grafik mit DHTML für IE5 programmieren.
Leider ergab der bisherige Versuch über folgende Methode (rekursiver Aufruf mit setTimeout):

var x = 460; // Startposition
var c = -1; // Richtung
var maxx = 160; // maximale Verschiebung
function moveup(wen) {
if (x!= maxx) {
x = x + c;
eval("document.all['" + wen + "'].style.top = " + x + ";");
setTimeout("moveup('" + wen + "')", 10);
} // if
} // function
moveup('vermieter1');

ein sehr unterschiedliches Ergebnis unter Win95/98 und Windows 2000. Unter Win2000 läuft alles sehr flüssig und gut ab. Unter Win95/98 dauert die Animation viel länger und stört somit den Ablauf meines "Gesamtfilms".

Gibt es eine bessere Möglichkeit eine Animation zeitgesteuert flüssig ablaufen zu lassen?
Michael

  1. hi,

    setTimeouts sind immer abhaengig von der Rechnerleistung bzw. der momentanen Auslastung, d. h. die Angabe "10" Millisekunden wird nie wirklich ausgefuehrt.
    Eventuell erreichst Du einen fluessigeren Ablauf wenn Du alle Positionen in einem Array apeicherst und Dein Div nur noch von gespeicherter Position zu Position huepfen laesst, _ohne_ dass die CPU _rechnen_ muss.

    Btw.: warum verwendest Du eigentlich eval, dass der Performance zusaetzlich hemmt und hier voellig ueberfluessig ist? Es langt:
    document.all[wen].style.top =  x;

    Davon abgesehen weisst Du schon, dass Deine Funktion IE-only ist, also weder NC4x noch das aktuelle Dom beruecksichtigt?

    Gruesse  Joachim