Window setInterval() 方法
- 上一頁 self
- 下一頁 setTimeout()
- 返回上一層 Window 對象
定義和用法
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);
- 上一頁 self
- 下一頁 setTimeout()
- 返回上一層 Window 對象