我在 Jquery 中有一个动画,我想每 5 秒重复一次 setInterval,问题是我还希望它在开始前等待 5 秒。我还没有找到解决方案,我想过这样的事情,但它不起作用,它立即执行:
setTimeout(function(){
bannerInterval = setInterval(function(){
bannerRotate();
},5000);
},5000);
bannerRotate();
谢谢
我在 Jquery 中有一个动画,我想每 5 秒重复一次 setInterval,问题是我还希望它在开始前等待 5 秒。我还没有找到解决方案,我想过这样的事情,但它不起作用,它立即执行:
setTimeout(function(){
bannerInterval = setInterval(function(){
bannerRotate();
},5000);
},5000);
bannerRotate();
谢谢
我同意vadim,您的 setInterval 代码将在 setTimeout 结束后立即运行。setInterval 的 5000 不会延迟代码段的第一次运行,而是告诉代码重复它的频率。只需将 setTimeout 计时器从 5000 设置为 10000。
通过使用一些变量来跳过第一次使用,例如:
var firstRun = true;
setTimeout(function(){
bannerInterval = setInterval(function(){
if (firstRun)
{
firstRun = false;
}else
{
bannerRotate();
}
},5000);
},5000);
我正在执行我试图在代码中其他地方的 setTimeout() 函数之外延迟的函数。代码按原样工作:
setTimeout(function(){
bannerInterval = setInterval(function(){
bannerRotate();
},5000);
},5000);
/* bannerRotate(); WITHOUT THIS PART!!!! */
在您的代码使用空的 for 循环或任何循环语句来延迟启动之前
for (var i = 0; i < 5; i++) {}
使用 delay() 函数,试试下面给出的代码,希望对你有帮助
setTimeout(function(){
bannerInterval = setInterval(function(){
bannerRotate();
},5000);
},5000).delay(5000);