Hallo,
Du kannst die Zeitabstände zwischen den einzelnen Durchläufen der Schleife mit setInterval() vergrößern, sodass man den Effekt besser sieht.
Quasi so?
function shake(id, strongness, dur)
{
var origPos = document.getElementById(id).style.position;
var origLeft = document.getElementById(id).style.left;
document.getElementById(id).style.position = "relative";
window.setInterval("document.getElementById('" + id + "').style.left = '" + -1 * strongness + "px';document.getElementById('" + id + "').style.left = '" + 1 * strongness + "px';", 10)
window.setTimeout("window.clearInterval();", dur * 10);
window.setTimeout("document.getElementById('" + id + "').style.left = '" + origLeft + "';document.getElementById('" + id + "').style.position = '" + origPos + "';", (dur + 2) * 10);
}
Funktioniert nicht. Nur am Ende (beim clearInterval()) sieht man wie das einmal hin- und herruckelt, und dann hört der Effekt auf. :(
Außerdem solltest du "1 * strongness" auf- oder abrunden, falls da mal keine Ganzzahl herauskommt.
Danke für den Tip, werd ich später ändern.
Gruß, idubn