-1

我在 Jquery 中有一个动画,我想每 5 秒重复一次 setInterval,问题是我还希望它在开始前等待 5 秒。我还没有找到解决方案,我想过这样的事情,但它不起作用,它立即执行:

setTimeout(function(){
   bannerInterval = setInterval(function(){
    bannerRotate();
   },5000);
},5000);
bannerRotate();

谢谢

4

5 回答 5

0

我同意vadim,您的 setInterval 代码将在 setTimeout 结束后立即运行。setInterval 的 5000 不会延迟代码段的第一次运行,而是告诉代码重复它的频率。只需将 setTimeout 计时器从 5000 设置为 10000。

于 2013-05-31T08:31:40.953 回答
0

通过使用一些变量来跳过第一次使用,例如:

var firstRun = true;
setTimeout(function(){
   bannerInterval = setInterval(function(){
    if (firstRun)
    {
        firstRun = false;
    }else
    {
        bannerRotate();
    }
   },5000);
},5000);
于 2013-05-31T06:06:49.677 回答
0

我正在执行我试图在代码中其他地方的 setTimeout() 函数之外延迟的函数。代码按原样工作:

setTimeout(function(){
   bannerInterval = setInterval(function(){
    bannerRotate();
   },5000);
},5000);

/* bannerRotate(); WITHOUT THIS PART!!!! */ 
于 2013-05-31T11:22:59.593 回答
-1

在您的代码使用空的 for 循环或任何循环语句来延迟启动之前

for (var i = 0; i < 5; i++) {}
于 2013-05-31T07:29:49.470 回答
-2

使用 delay() 函数,试试下面给出的代码,希望对你有帮助

setTimeout(function(){
       bannerInterval = setInterval(function(){
        bannerRotate();
       },5000);
    },5000).delay(5000);
于 2013-05-31T05:45:09.223 回答