Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法让setInterval在经过一定时间后才开火?_Javascript - Fatal编程技术网

Javascript 有没有办法让setInterval在经过一定时间后才开火?

Javascript 有没有办法让setInterval在经过一定时间后才开火?,javascript,Javascript,我有 我也有 var slideIn1 = setInterval(slideBarIn1, 1) 我希望在slideIn1上使用clearInterval后的几秒钟内,第二个setInterval生效。 几秒钟后,我尝试使用setTimeout调用第二个setInterval,但setInterval在页面加载时触发…有什么建议吗 var slideIn2 = setInterval(slideBarIn2, 1) 函数slideBarIn1(){ 杆位置1=杆位置1-0.7; verti

我有

我也有

var slideIn1 = setInterval(slideBarIn1, 1)
我希望在slideIn1上使用clearInterval后的几秒钟内,第二个setInterval生效。
几秒钟后,我尝试使用setTimeout调用第二个setInterval,但setInterval在页面加载时触发…有什么建议吗

var slideIn2 = setInterval(slideBarIn2, 1)
函数slideBarIn1(){
杆位置1=杆位置1-0.7;
verticalBar.style.left=barPosition1+“px”;
如果(杆位置1<(-320)){
clearInterval(幻灯片1);
}   
}
函数slideBarIn2(){
杆位置2=杆位置2-0.7;
horizontalBar.style.top=bar位置2+“px”;
如果(杆位置2<(-320)){
clearInterval(幻灯片2);
}   
}

如果我理解正确,您希望: 1) 等待页面加载。 2) 等一秒钟。 3) 执行slideBarIn1。 4) 等一秒钟。 5) 执行slideBarIn2。 6) 等待(未指定)秒。 7) 返回步骤3-执行slideBarIn1

我建议不要使用setInterval或setInterval和setTimeout的组合,而是用策略性的“setTimeout”来代替它们

下面是一个示例,它应该在slideBarIn1和slideBarIn2之间交替使用,中间有1秒的延迟

/*等待页面加载,然后开始第一个序列*/
window.onload=函数(){
//在1秒(1000毫秒)内执行slideBarIn1
设置超时(slideBarIn1,1000);
};
函数slideBarIn1(){
//做slideBarIn1需要做的任何事情
//然后,在离开这个函数之前
//启动slideBarIn2的计时器
设置超时(SlideBarin21000);
}
WO和ONE之间的常数延迟=1000;//设置为零,无延迟
函数slideBarIn2(){
//做slideBarIn2需要做的任何事情
//如果你想继续循环,
//现在可以为slideBarIn1设置另一个计时器
设置超时(slideBarIn1,两个和一个之间的延迟);

}
如果我理解正确,您希望: 1) 等待页面加载。 2) 等一秒钟。 3) 执行slideBarIn1。 4) 等一秒钟。 5) 执行slideBarIn2。 6) 等待(未指定)秒。 7) 返回步骤3-执行slideBarIn1

我建议不要使用setInterval或setInterval和setTimeout的组合,而是用策略性的“setTimeout”来代替它们

下面是一个示例,它应该在slideBarIn1和slideBarIn2之间交替使用,中间有1秒的延迟

/*等待页面加载,然后开始第一个序列*/
window.onload=函数(){
//在1秒(1000毫秒)内执行slideBarIn1
设置超时(slideBarIn1,1000);
};
函数slideBarIn1(){
//做slideBarIn1需要做的任何事情
//然后,在离开这个函数之前
//启动slideBarIn2的计时器
设置超时(SlideBarin21000);
}
WO和ONE之间的常数延迟=1000;//设置为零,无延迟
函数slideBarIn2(){
//做slideBarIn2需要做的任何事情
//如果你想继续循环,
//现在可以为slideBarIn1设置另一个计时器
设置超时(slideBarIn1,两个和一个之间的延迟);

}
你能提供一个完整的例子吗?(见附件)。调用
clearInterval
时,为什么不直接调用
setInterval(slideBarIn2,1)
?如何使用clearInterval调用setInterval(slideBarIn2,1)?我发布了上面的函数。提前感谢您只需输入行
slideIn2=setInterval(slideBarIn2,1)直接在
清除间隔之后(幻灯片1)。仍然在全局范围内声明
sliden2
,即保留
var sliden2。好的,谢谢,成功了。有没有办法在clearInterval(slideIn1)之后将setInterval(slideBarIn2,1)延迟几秒钟?这样它就不会马上触发。我意识到我可以减少条件语句中的值,但这似乎不是很有效。正如你提到的,你可以使用
setTimeout
。你能提供一个完整的例子吗?(见附件)。调用
clearInterval
时,为什么不直接调用
setInterval(slideBarIn2,1)
?如何使用clearInterval调用setInterval(slideBarIn2,1)?我发布了上面的函数。提前感谢您只需输入行
slideIn2=setInterval(slideBarIn2,1)直接在
清除间隔之后(幻灯片1)。仍然在全局范围内声明
sliden2
,即保留
var sliden2。好的,谢谢,成功了。有没有办法在clearInterval(slideIn1)之后将setInterval(slideBarIn2,1)延迟几秒钟?这样它就不会马上触发。我意识到我可以减少条件语句中的值,但这似乎不是很有效。正如你提到的,你可以使用
setTimeout
function slideBarIn1(){
    barPosition1 = barPosition1 - 0.7;
    verticalBar.style.left = barPosition1+"px";

    if (barPosition1 < (-320)) {
        clearInterval(slideIn1);
    }   
}

function slideBarIn2(){
    barPosition2 = barPosition2 - 0.7;
    horizontalBar.style.top = barPosition2+"px";

    if (barPosition2 < (-320)) {
        clearInterval(slideIn2);
    }   
}