当前位置: 移动技术网 > IT编程>开发语言>JavaScript > BOM心得-定时器

BOM心得-定时器

2018年03月13日  | 移动技术网IT编程  | 我要评论
写在前面的话:之前一直以为定时器的返回值是Object类型,所以timer初始化也是写null,今天发现返回值是number,进而发觉这个返回值代表的是定时器的索引,指代这是第几个定时器 个人觉得只用set/clearInterval方法就好,他可以实现另外的一个方法的所有功能 启用定时器的方法有两 ...

写在前面的话:之前一直以为定时器的返回值是Object类型,所以timer初始化也是写null,今天发现返回值是number,进而发觉这个返回值代表的是定时器的索引,指代这是第几个定时器

个人觉得只用set/clearInterval方法就好,他可以实现另外的一个方法的所有功能

启用定时器的方法有两种:

一、setInterval(,)

  • 周期性的执行函数体,这个方法如果不主动停止的话,会一直执行
  • 第一个参数是执行的函数体,一般传入有函数名的函数方法或匿名方法,非常不建议直接传入函数执行体,代码可读性会很差,应该也没人会这样做吧
  • 第二个参数是周期时间,单位是毫秒

二、setTimeout(,)

  • 在指定的时间之后执行函数体,如果有输出,也会不间断输出
  • 第一个参数也是要被执行的函数体
  • 第二个参数是指定的延迟时间,单位是毫秒

停止定时器的方法:

一、clearclearInterval()

  • 停止由 setInterval() 方法调用的定时器
  • 提前定义一个变量(一般用timer)接收setInterval(),执行结束后直接把变量传入 clearInterval()

二、clearTimeout()

  • 使用方法同上
 1 <script>
 2         window.onload = function () {
 3             //需求:点击关闭,广告栏消失,用定时器添加渐变效果
 4             var timer = 0;
 5             var ad = document.getElementsByClassName('ad')[0];
 6             var a = ad.children[0].firstElementChild || ad.children[0].firstChild;
 7 
 8             a.onclick = function () {
 9                 //设置定时器
10                 timer = setInterval(function() {
11                     ad.style.opacity -= 0.1;
12                     //透明度为0后,隐藏广告栏,清除定时器
13                     if (ad.style.opacity <= 0) {
14                         ad.style.display = "none";
15                         clearInterval(timer);
16                     }
17                 },50);
18             }
19 
20 
21             var ad_both = document.body.children;         
22             setTimeout(function() {
23                 ad_both[1].style.display = "none";
24                 ad_both[2].style.display = "none";
25             },5000);
26             clearTimeout(timer);
27         }
28     </script>
29 </head>
30 <body>
31     <div class="top_banner">
32         <div class="nav">导航栏</div>
33         <div class="ad w" style="opacity: 1;">  <!--这里不懂,不是行内式的时候,有bug-->
34             <div class="close_ad">
35                 <a href="#">×</a>
36             </div>
37         </div>
38         <div class="search w"></div>
39     </div>
40     <div class="ad_l">我将于5秒后自动消失</div>
41     <div class="ad_r">我将于5秒后自动消失</div>
42 </body>

 

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网