原文:https://www.cnblogs.com/sunhaoyu/p/8780909.html
setInterval是一個實現定時調用的函數,可按照指定的周期(以毫秒計)
來調用函數或計算表達式。setInterval方法會不停地調用函數,直到 clearInterval被調用或窗口被關閉
定義和用法:
setInterval() 方法可按照指定的周期(以毫秒計)來調用函數或計算表達式。
setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數。
提示: 1000 毫秒= 1 秒。
提示: 如果你只想執行一次可以使用 setTimeout() 方法。

實例:
01,每三秒(3000 毫秒)彈出 "Hello" :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<p>點擊按鈕,等待 3 秒會彈出 "Hello"。</p>
<p>在彈出的對話框中點擊 “確定”, 3 秒后會繼續彈出。如此循環下去...</p>
<button onclick="myFunction()">點我</button>
<script>
function myFunction() {
setInterval(function(){ alert("Hello"); }, 3000);
}
</script>
</body>
</html>
02,可以通過調用一個已命名的函數,每三秒(3000 毫秒)彈出 "Hello":
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<p>點擊按鈕,等待 3 秒會彈出 "Hello"。</p>
<p>在彈出的對話框中點擊 “確定”, 3 秒后會繼續彈出。如此循環下去...</p>
<button onclick="myFunction()">點我</button>
<script>
var myVar;
function myFunction() {
myVar = setInterval(alertFunc, 3000);
}
function alertFunc() {
alert("Hello!");
}
</script>
</body>
</html>
03,顯示當前時間( setInterval() 方法會每秒執行一次函數,類似手表功能):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<p>顯示當前時間:</p>
<p id="demo"></p>
<script>
var myVar = setInterval(function(){ myTimer() }, 1000);
function myTimer() {
var d = new Date();
var t = d.toLocaleTimeString();
document.getElementById("demo").innerHTML = t;
}
</script>
</body>
</html>
04,使用 clearInterval() 來停止 setInterval 的執行:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<p>顯示當前時間:</p>
<p id="demo"></p>
<button onclick="myStopFunction()">停止時間</button>
<script>
var myVar = setInterval(function(){ myTimer() }, 1000);
function myTimer() {
var d = new Date();
var t = d.toLocaleTimeString();
document.getElementById("demo").innerHTML = t;
}
function myStopFunction() {
clearInterval(myVar);
}
</script>
</body>
</html>
05,使用 setInterval() 和 clearInterval()來創建動態進度條:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<style>
#myProgress {
width: 100%;
height: 30px;
position: relative;
background-color: #ddd;
}
#myBar {
background-color: #4CAF50;
width: 10px;
height: 30px;
position: absolute;
}
</style>
<body>
<h1>JavaScript 進度條</h1>
<div id="myProgress">
<div id="myBar"></div>
</div>
<br>
<button onclick="move()">點我</button>
<script>
function move() {
var elem = document.getElementById("myBar");
var width = 0;
var id = setInterval(frame, 10);
function frame() {
if (width == 100) {
clearInterval(id);
} else {
width++;
elem.style.width = width + '%';
}
}
}
</script>
</body>
</html>

