Hallo ChrisB,
Da sollte Nino wohl öfters mal ein clearTimeout() bzw. clearInterval() benutzen.
Nein, eher so lange die Animation laeuft, das erneute Aufrufen der Funktion durch erneutes Klicken unterbinden. So wie's derzeit geregelt ist, hat er dann naemlich zwei oder mehr Timer, die parallel laufen.
Ich habe mir angewöhnt, als erstes in einer sich über setTimeout() selbst aufrufenden Funktion das entsprechende clearTimeout() anzuwenden. Dann gibts auch keine Probleme, da darüber auch mehrere Parallelinstanzen desselben Timers "gecleart" werden.
Bei sehr kleinen Intervallen und sehr umfänglichem Code der sich selbst aufrufenden Funktion könnte ich mir aber vorstellen, dass das tatsächlich nicht wirkt, da vielleicht gerade mehrere dieser Parallelinstanzen abgearbeitet werden und nicht gerade im Intervall Pause machen.
Für ruckelfreie Animationen bringt es dem menschlichen Auge aber sowieso nichts, unter 40 Millisekunden zu gehen. Besser als Kino muss eine Animation ja auch nicht sein.
http://de.wikipedia.org/wiki/Bildwiederholfrequenz
Wer eine schnellere Bewegung wünscht, sollte dann lieber die Pixel-Schrittweite erhöhen.
Gruß Gernot
super me