06.定时器练习.html 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <script>
  9. window.onload = function () {
  10. /**
  11. * 使图片可以自动切换
  12. */
  13. //获取img标签
  14. var img1 = document.getElementById('img1');
  15. //创建一个数组,来保存图片的路径
  16. var imgArr = ["img/1.jpeg", "img/2.jpeg", "img/3.jpeg", "img/4.jpeg", "img/5.jpeg"];
  17. //创建一个变量,用来保存当前图片的索引
  18. var index = 0;
  19. //定义一个变量,用来保存定时器的标识
  20. var timer;
  21. //为btn01绑定一个单击响应函数
  22. var btn01 = document.getElementById('btn01');
  23. btn01.onclick = function () {
  24. /**
  25. * 目前,我们每点击一次按钮,就会开启一个定时器
  26. * 点击多次就会开启多个定时器,这就导致图片的切换速度过快,
  27. * 并且我们只能关闭最后一次开启的定时器
  28. */
  29. //在开启定时器之前,需要将当前元素上的其他定时器关闭
  30. clearInterval(timer);
  31. /**
  32. * 开启一个定时器,来自动切换图片
  33. */
  34. timer = setInterval(function () {
  35. //使索引自增
  36. index++;
  37. //判断索引是否超过最大索引
  38. if (index >= imgArr.length) {
  39. index = 0;
  40. };
  41. //上面的if语句可以改写成下面的语句
  42. // index = index % imgArr.length;
  43. index %= imgArr.length;
  44. //修改img1的src属性
  45. img1.src = imgArr[index];
  46. }, 1000);
  47. };
  48. //为btn02绑定一个单击响应函数
  49. var btn02 = document.getElementById('btn02');
  50. btn02.onclick = function(){
  51. //点击按钮以后,停止图片的自动切换,关闭定时器
  52. /**
  53. * clearInterval()可以接收任意参数,
  54. * 如果参数是一个有效的定时器标识,则停止对应的定时器
  55. * 如果参数不是一个有效的标识,则什么也不做
  56. */
  57. clearInterval(timer);
  58. };
  59. };
  60. </script>
  61. </head>
  62. <body>
  63. <button id="btn01">开始</button><button id="btn02">停止</button>
  64. <br><br>
  65. <img id="img1" src="img/1.jpeg" />
  66. </body>
  67. </html>