これが私が
http://www.schillmania.com/content/projects/javascript-animation-1/demo/
からコピーしたコードの一部です。
非常に単純なJSアニメーション:
function doMove() {
  foo.style.left = parseInt(foo.style.left)+1+'px';
  setTimeout(doMove,20); 
}
これは正常に機能します。ただし、次のように変更すると、次のようになります。
function doMove() {
   for (var i=0; i<1000; i++) {
       setTimeout(function(){foo.style.left = parseInt(foo.style.left)+1+'px';},20*i);
   }
}
したがって、アニメーションはまったくありません。私の知る限り、setTimeoutが呼び出されるたびに、JSエンジンはこれらのイベントをキューにプッシュします。だから私はこれがうまくいかない理由を理解していません。