忽略setTimeout的延迟部分,Javascript

时间:2014-09-02 18:53:38

标签: javascript

我试图添加一个睡眠/延迟功能来制作div滑出的动画。此刻它会立即转动-60em而不会有任何延迟,从而阻止div滑出。

Dunno为什么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 个答案:

答案 0 :(得分:2)

您立即调用animateLeft(activeSlide)并设置超时,以便在5秒内调用其返回值

你想要这个:

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

或者这个:

setTimeout(animateLeft, 5000, activeSlide);