setTimeout的延迟部分被忽略,Javascript

setTimeout的延迟部分被忽略,Javascript,javascript,Javascript,我试图添加一个sleep/delay函数来制作一个div滑出的动画。目前,它将立即变成-60公分,没有任何延迟,这防止了潜水器滑出 不知道为什么setTimeout会忽略时间延迟 for(activeSlide; activeSlide < i; activeSlide++){ animateLeft(activeSlide); function animateLeft(activeSlide){ div[activeSlide].style.left =

我试图添加一个sleep/delay函数来制作一个div滑出的动画。目前,它将立即变成-60公分,没有任何延迟,这防止了潜水器滑出

不知道为什么
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);
    }
}
for(activeSlide;activeSlide
您正在立即调用
animateLeft(activeSlide)
,并设置超时以在5秒内调用其返回值

您希望这样做:

setTimeout(function() { animateLeft(activeSlide); }, 5000);
否则:

setTimeout(animateLeft, 5000, activeSlide);

什么时候定义了
步骤