Glory: Schütteleffekt

Beitrag lesen

Ich hab das jetzt folgendermaßen (rekursiv) gelöst:

function shake(obj, strongness, dur, speed, direction)  
{  
 if (direction > 0)  
  obj.style.left = parseInt(obj.style.left) + strongness + "px";  
 else  
  obj.style.left = parseInt(obj.style.left) - strongness + "px";  
 dur -= speed / 1000;  
 if (dur <= 0)  
  return;  
 setTimeout(function(){ shake(obj, strongness, dur, speed, -1*direction); }, speed);  
}

Und wird folgendermaßen aufgerufen:

<div onClick="shake(this, 3, 5, 1000, 1)" (...)  

Wobei der erste Parameter immer "this" sein muss, der Zweite für die Stärke des Schüttelns, der Dritte für die Dauer und der Vierte für die Geschindigkeit (in Sekunde/1000) steht. Der letzte sollte einen positiven Wert haben (welcher ist egal, z.B. 1).