Window setInterval() 方法

实例

每隔 3 秒(3000 毫秒)弹出 "Hello" 的警告消息框

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>单击按钮等待 3 秒钟,然后弹出 "你好" 。</p>
  5. <p>单击关闭消息框后,3 秒钟后将出现一个新的消息框。这将永远持续。。。</p>
  6. <button onclick="myFunction()">试一试</button>
  7. <script>
  8. function myFunction() {
  9. setInterval(function(){ alert("Hello"); }, 3000);
  10. }
  11. </script>
  12. </body>
  13. </html>

定义与用法

setInterval() 方法以指定的间隔(毫秒)调用函数或计算表达式。

setInterval() 方法将继续调用该函数,直到 clearInterval() 被调用,或窗口被关闭。

setInterval() 返回的 ID 值用作 clearInterval() 方法的参数。

提示: 1000 ms = 1 second.

提示: 要在指定的毫秒数后仅执行一次函数,请使用 setTimeout() 方法。

浏览器支持

表中的数字指定完全支持该方法的第一个浏览器版本。

方法
setInterval()1.04.01.01.04.0

语法

  1. setInterval(function, milliseconds, param1, param2, ...)

参数值

参数描述
function必填。将要执行的函数
milliseconds必填。 执行代码的频率间隔(毫秒)。如果值小于 10,则使用 10
param1, param2, …可选。function 函数的附加参数 (IE9 及更早版本不支持)

技术细节

返回值:一个数字,表示设置的计时器的ID值。将此值与 clearInterval() 方法一起使用可取消计时器

更多实例

实例

您还可以引用 "named" 函数;每 3 秒(3000 毫秒)弹出 "Hello":

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>点击按钮等待 3 秒弹出 &quot;Hello&quot;</p>
  5. <p>单击关闭消息框后,3 秒钟后将出现一个新的消息框。这将永远持续。。。</p>
  6. <button onclick="myFunction()">试一试</button>
  7. <script>
  8. var myVar;
  9. function myFunction() {
  10. myVar = setInterval(alertFunc, 3000);
  11. }
  12. function alertFunc() {
  13. alert("Hello!");
  14. }
  15. </script>
  16. </body>
  17. </html>
实例

显示当前时间(setInterval() 方法将每1秒执行一次函数,就像数字手表一样):

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>此页上的脚本启动此时钟:</p>
  5. <p id="demo">
  6. <script>
  7. var myVar = setInterval(myTimer, 1000);
  8. function myTimer() {
  9. var d = new Date();
  10. var t = d.toLocaleTimeString();
  11. document.getElementById("demo").innerHTML = t;
  12. }
  13. </script>
  14. </body>
  15. </html>
实例

在上一个示例中使用 clearInterval() 停止时间:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>此页上的脚本启动此时钟:</p>
  5. <p id="demo">
  6. <button onclick="myStopFunction()">停止</button>
  7. <script>
  8. var myVar = setInterval(myTimer, 1000);
  9. function myTimer() {
  10. var d = new Date();
  11. var t = d.toLocaleTimeString();
  12. document.getElementById("demo").innerHTML = t;
  13. }
  14. function myStopFunction() {
  15. clearInterval(myVar);
  16. }
  17. </script>
  18. </body>
  19. </html>
实例

使用 setInterval() 和 clearInterval() 创建动态进度条:

  1. <!DOCTYPE html>
  2. <html>
  3. <style>
  4. #myProgress {
  5. width: 100%;
  6. height: 30px;
  7. position: relative;
  8. background-color: #ddd;
  9. }
  10. #myBar {
  11. background-color: #4CAF50;
  12. width: 10px;
  13. height: 30px;
  14. position: absolute;
  15. }
  16. </style>
  17. <body>
  18. <div id="myProgress">
  19. <div id="myBar"></div>
  20. </div>
  21. <br>
  22. <button onclick="move()">点击这里</button>
  23. <script>
  24. function move() {
  25. var elem = document.getElementById("myBar");
  26. var width = 0;
  27. var id = setInterval(frame, 10);
  28. function frame() {
  29. if (width == 100) {
  30. clearInterval(id);
  31. } else {
  32. width++;
  33. elem.style.width = width + '%';
  34. }
  35. }
  36. }
  37. </script>
  38. </body>
  39. </html>
实例

每 300 毫秒在两种背景色之间切换一次:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>在本例中,setInterval() 方法每 300 毫秒执行一次 setColor() 函数,该函数将在两种背景色之间切换。</p>
  5. <button onclick="stopColor()">停止切换</button>
  6. <script>
  7. var myVar = setInterval(setColor, 300);
  8. function setColor() {
  9. var x = document.body;
  10. x.style.backgroundColor = x.style.backgroundColor == "yellow" ? "pink" : "yellow";
  11. }
  12. function stopColor() {
  13. clearInterval(myVar);
  14. }
  15. </script>
  16. </body>
  17. </html>
实例

将参数传递给 alertFunc 函数(在 IE9 及更早版本中不起作用):

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>单击开始按钮,每 2 秒弹出一次 "Hello" 。</p>
  5. <p>在本例中,我们还输出了传递给 alertFunc() 函数的参数(在 IE9 和更早版本中不起作用)。</p>
  6. <button onclick="myStartFunction()">开始</button> <button onclick="myStopFunction()">停止</button>
  7. <p id="demo">
  8. <p id="demo2" style="color:red;">
  9. <script>
  10. var myVar;
  11. function myStartFunction() {
  12. myVar = setInterval(alertFunc, 2000, "First parameter", "Second parameter");
  13. }
  14. function alertFunc(param1, param2) {
  15. document.getElementById("demo").innerHTML += "Hello ";
  16. document.getElementById("demo2").innerHTML = "参数传递到 alertFunc(): <br>"
  17. + param1 + "<br>" + param2 + "<br>";
  18. }
  19. function myStopFunction() {
  20. clearInterval(myVar);
  21. }
  22. </script>
  23. </body>
  24. </html>

但是,如果使用一个匿名函数,它将在所有浏览器中工作:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>单击开始按钮,每 2 秒弹出一次 "Hello" 。</p>
  5. <p>在本例中,我们还输出了传递给 alertFunc() 函数的参数(在 IE9 和更早版本中不起作用)。</p>
  6. <button onclick="myStartFunction()">开始</button> <button onclick="myStopFunction()">停止</button>
  7. <p id="demo">
  8. <p id="demo2" style="color:red;">
  9. <script>
  10. var myVar;
  11. function myStartFunction() {
  12. myVar = setInterval(function(){ alertFunc("First parameter", "Second parameter"); }, 2000);
  13. }
  14. function alertFunc(param1, param2) {
  15. document.getElementById("demo").innerHTML += "Hello ";
  16. document.getElementById("demo2").innerHTML = "参数传递到 alertFunc(): <br>"
  17. + param1 + "<br>" + param2 + "<br>";
  18. }
  19. function myStopFunction() {
  20. clearInterval(myVar);
  21. }
  22. </script>
  23. </body>
  24. </html>

相关页面

Window 对象: clearInterval() 方法

Window 对象: setTimeout() 方法

Window 对象: clearTimeout() 方法

分类导航