2014-09-02 107 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);