2014-09-02 172 views
0

我試圖添加睡眠/延遲功能來製作div滑出的動畫。此刻它會立即轉動-60em而不會有任何延遲,從而防止div滑出。setTimeout的延遲部分被忽略,Javascript

不知道爲什麼setTimeout忽略了時間延遲。

for(activeSlide; activeSlide < i; activeSlide++){ 
    animateLeft(activeSlide); 

    function animateLeft(activeSlide){ 
     div[activeSlide].style.left = step+'em'; 
     step -= 6; 

     if(step < -60) { 
      return; 
     } 
     setTimeout(animateLeft(activeSlide), 5000); 
    } 
} 
+1

當step'定義'? – 2014-09-02 18:55:28

回答

2

你立即調用animateLeft(activeSlide)和設置超時調用其返回值在5秒。

希望此相反:

setTimeout(function() { animateLeft(activeSlide); }, 5000); 

要不這樣:

setTimeout(animateLeft, 5000, activeSlide);