Aloha ;)
Damit meine ich natürlich nicht, dass wenn man 2 Sekunden als Wert für den Parameter "duration" angibt, die Animation dann trotzdem 1 oder 5 Sekunden dauern könnte...
...sondern, dass man _auch_ andere Werte, wie 1 _oder_ 5 oder [n] eingeben könnte und die tatsächliche Dauer der Animation dann ziemlich genau diesem Wert entspricht. :D
Letzteres hängt aber ganz, ganz wesentlich davon ab, ob die Funktion tatsächlich genau mit 60 fps getaktet ist. Ich bin mir noch nicht ganz sicher, ob das tatsächlich und immer gewährleistet ist.
Ansonsten (und meine eben genannten Bedenken kann man bei deinem Projekt sowieso über Bord werfen) finde ich deine Methode recht elegant.
Support für IE9 über setTimeout-Fallback bietet deine Methode aber nicht :P
Ceterum censeo Windows Vista Internet Explorer Neunque esse delendam.
Grüße,
RIDER
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[