Sono riuscito ad arrivare all' effetto richiesto, il problema è che se voglio ripetere la funzione più volte l'animazione risulta accelerata alle prime esecuzioni per poi arrivare alla velocità giusta solo all'ultima esecuzione, come mai? vi posto il codice:
<html>
<div id="muovi"> HTML </div>
<script type="text/javascript">
var startx = 0;
function Sposta(div)
{
if(startx < 1000)
{
document.getElementById(div).style.marginLeft = "+" + startx + "px";
startx+=1;
setTimeout("Sposta('" + div + "')",50);
}
else
{
document.getElementById(div).style.marginLeft = "0px";
startx=0;
}
}
for (var i=0;i<10;i++)
{
Sposta('muovi');
}
</script>
</html>