L' unica cosa per sospendere un ciclo for in corso di esecuzione, è di metterci in mezzo un alert() che ti vedrai saltar su a chiedere Ok ad ogni "colpo" del for.
Questo perché gli alert, prompt e confirm giocano ad un livello "più profondo" nel software del browser.
Difficilmente si potrebbe ottenere un controllo analogo da un type="button" credo.
Per realizzare quello che intendi ottenere, abbandonerei il loop for e mi baserei sulla ricorsione: una funzione che richiama se stessa.
Il richiamo lo possiamo differire con un setTimeout() (temporizzatore).
Prova questo modellino:
codice:
<html><head><title>sliding div</title>
<script type="text/javascript">
var mL = 0;
function moveR(){
mL = mL + 4; //numero di pixel in aggiunta
document.getElementById("thing").style.marginLeft = mL + "px";
TimerLeft = setTimeout('moveR();', 100); //in milli-secondi
};
function rest(){
clearTimeout(TimerLeft);
};
</script>
</head><body>
<div id="thing" style="width: 100px; height: 50px; border: 1px solid red;"></div>
<hr>
<input value="move right" type="button" onclick="moveR()">
<input value="stop" type="button" onclick="rest();">
</body></html>
Insorgerà una problematica (prevista) se clicchi ripetutamente ...