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);
}
}