你可以使用 setInterval(),参数是相同的。

const interval = setInterval(function() {
// method to be executed;
}, 5000);


clearInterval(interval); // thanks @Luca D'Amico

为了在将来重复某个操作,可以使用内置的 setInterval函数代替 setTimeout
它有一个类似的签名,所以从一个到另一个的转变很简单:

setInterval(function() {
// do stuff
}, duration);

对你的函数执行一个“递归”setTimeout,它会在每次定义的时间段内继续执行:

function yourFunction(){
// do whatever you like here


setTimeout(yourFunction, 5000);
}


yourFunction();

这里有一个很好的例子: http://jsfiddle.net/MrTest/t4NXD/62/

另外:

  • 有很好的 fade in / fade out动画
  • 将暂停在 :hover
  • 将防止运行多个操作(在第二次开始前完成运行动画)
  • 将防止在选项卡中断开(浏览器停止选项卡中的脚本)

测试和工作!

正如 最佳编码方法所建议的,使用 setTimeout而不是 setInterval

function foo() {


// your function code here


setTimeout(foo, 5000);
}


foo();

请注意,这不是一个递归函数。函数不会在结束之前调用它自己,而是调用一个 setTimeout函数,稍后将再次调用同一个函数。