如何延迟setInterval - Javascript

时间:2013-05-31 04:54:43

标签: javascript settimeout setinterval

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

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

由于

5 个答案:

答案 0 :(得分:0)

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

var firstRun = true;
setTimeout(function(){
   bannerInterval = setInterval(function(){
    if (firstRun)
    {
        firstRun = false;
    }else
    {
        bannerRotate();
    }
   },5000);
},5000);

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我正在执行我试图在我的代码中的其他地方的setTimeout()函数之外延迟的函数。 代码就是这样:

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

/* bannerRotate(); WITHOUT THIS PART!!!! */ 

答案 3 :(得分:-1)

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

for (var i = 0; i < 5; i++) {}

答案 4 :(得分:-2)

使用delay()函数,尝试下面给出的代码,希望这可以帮到你

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