Window setInterval() 方法
定义和用法
setInterval() 方法以指定的时间间隔(以毫秒为单位)调用函数。
setInterval() 方法会周期性调用函数,直到调用 clearInterval() 或关闭窗口。
注释:1 秒 = 1000 毫秒。
提示
如需仅执行一次函数,请改用 setTimeout() 方法。
如需清除间隔,请使用 setInterval() 返回的 id:
myInterval = setInterval(function, milliseconds);
然后你可以通过调用 clearInterval() 来停止执行:
clearInterval(myInterval);
另请参阅:
实例
例子 1
每秒显示 "Hello"(1000 毫秒):
setInterval(function () {element.innerHTML += "Hello"}, 1000);
例子 2
每秒调用一次 displayHello:
setInterval(displayHello, 1000);
页面下方提供更多实例。
语法
setInterval(function, milliseconds, param1, param2, ...)
参数
| 参数 | 描述 |
|---|---|
| function | 必需。要执行的函数 |
| milliseconds |
必需。执行间隔。 如果值小于 10,则使用 10。 |
| param1, param2, ... |
可选。传递给函数的附加参数。 IE9 及更早版本不支持。 |
返回值
| 类型 | 描述 |
|---|---|
| 数字 |
计时器的 ID。 请将此 id 与 clearInterval() 一起使用以取消计时器。 |
浏览器支持
所有浏览器都支持 setInterval():
| Chrome | IE | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|---|
| Chrome | IE | Edge | Firefox | Safari | Opera |
| 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
更多实例
例子 3
像电子表一样显示时间:
setInterval(myTimer, 1000);
function myTimer() {
const date = new Date();
document.getElementById("demo").innerHTML = date.toLocaleTimeString();
}
例子 4
使用 clearInterval() 停止电子表:
const myInterval = setInterval(myTimer, 1000);
function myTimer() {
const date = new Date();
document.getElementById("demo").innerHTML = date.toLocaleTimeString();
}
function myStopFunction() {
clearInterval(myInterval);
}
例子 5
使用 setInterval() 和 clearInterval() 创建动态进度条:
function move() {
const element = document.getElementById("myBar");
let width = 0;
let id = setInterval(frame, 10);
function frame() {
if (width == 100) {
clearInterval(id);
} else {
width++;
element.style.width = width + '%';
}
}
}
例子 6
每 500 毫秒在两种背景颜色之间切换一次:
const myInterval = setInterval(setColor, 500);
function setColor() {
let x = document.body;
x.style.backgroundColor = x.style.backgroundColor == "yellow" ? "pink" : "yellow";
}
function stopColor() {
clearInterval(myInterval);
}
例子 7
将参数传递给函数(在 IE9 及更早版本中不起作用):
setInterval(myFunc, 2000, "param1", "param2");
但是,如果您使用匿名函数,则适用于所有浏览器:
setInterval(function() {myFunc("param1", "param2")}, 2000);