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

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

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

一、setInterval(,)

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

二、setTimeout(,)

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

停止定时器的方法:

一、clearclearInterval()

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

二、clearTimeout()

  • 使用方法同上
 <script>
window.onload = function () {
//需求:点击关闭,广告栏消失,用定时器添加渐变效果
var timer = 0;
var ad = document.getElementsByClassName('ad')[0];
var a = ad.children[0].firstElementChild || ad.children[0].firstChild; a.onclick = function () {
//设置定时器
timer = setInterval(function() {
ad.style.opacity -= 0.1;
//透明度为0后,隐藏广告栏,清除定时器
if (ad.style.opacity <= 0) {
ad.style.display = "none";
clearInterval(timer);
}
},50);
} var ad_both = document.body.children;
setTimeout(function() {
ad_both[1].style.display = "none";
ad_both[2].style.display = "none";
},5000);
clearTimeout(timer);
}
</script>
</head>
<body>
<div class="top_banner">
<div class="nav">导航栏</div>
<div class="ad w" style="opacity: 1;"> <!--这里不懂,不是行内式的时候,有bug-->
<div class="close_ad">
<a href="#">×</a>
</div>
</div>
<div class="search w"></div>
</div>
<div class="ad_l">我将于5秒后自动消失</div>
<div class="ad_r">我将于5秒后自动消失</div>
</body>

BOM心得-定时器的更多相关文章

  1. BOM以及定时器

    一.BOM 1.操作浏览器的一些方法 (浏览器对象模型) 2.window是is中的顶级变量,是一个全局的变量,所有人都可以访问到它,基本 的方法和属性 (document,alert,console ...

  2. 13 -1 BOM和定时器

    一 BOM JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等. DOM:文档对象模型,操作网页上的元 ...

  3. BOM心得

    Brower Objects Model浏览器对象模型 ps: 到现在也没个正式标准.............. window是BOM的顶级对象,但一般可以省略 一.Location对象 相当于浏览器 ...

  4. BOM之定时器

    JavaScript中的时间是通过定时器控制的,他们分别是window.setInterval和window.setTimeout,我们当然可以省略window,直接使用方法名称调用. 一     s ...

  5. JS中定时器的返回数值ID值

    定时器会返回一个数字值id,可以由clearInterval(id)或clearTimeout(id)来实现对对应定时器的清除. setInterval()/setTimeout()BOM中的Wind ...

  6. web前端面试第一次[定时器]

    BOM中定时器--计时器 定时器参数两个:(函数,时间(单位ms(1000ms=1s))) 时间设置1s,每过1s执行一次函数 //设置定时器 setInterval(funtion(){ alert ...

  7. 前端3 — js — BOM没完( 不了解也行 )

    1.js是什么? -- 英文全称javascript javaScript(简称"JS") 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言.虽然它是作为开发Web页面的脚 ...

  8. Web前端学习路线

    第一阶段: HTML+CSS:HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础:Js基础教程.js内置对象常用方法.常见DOM树操作大全.ECMAsc ...

  9. 关于web前端的学习路线

    第一阶段: HTML+CSS:HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础:Js基础教程.js内置对象常用方法.常见DOM树操作大全.ECMAsc ...

随机推荐

  1. C# 图像处理: 获取当前活动窗口句柄,获取窗口大小及位置

    需调用API函数 需在开头引入命名空间 using System.Runtime.InteropServices; 获取当前窗口句柄:GetForegroundWindow() [DllImport( ...

  2. ESET官方下载地址

    官方远程下载 ESET NOD32 Antivirus(32位) ESET NOD32 Antivirus(64位) ESET Smart Security(32位) ESET Smart Secur ...

  3. web自动化测试中接口测试学习笔记

    一.web基础 web是实现:客户端浏览器端<—————>服务端  交互的应用: web通常包含两部分:web客户端.web服务端:web客户端技术包含html.javascript.aj ...

  4. jdk 11特性

    JDK 11 总共包含 17 个新的 JEP ,分别为: 181: Nest-Based Access Control(基于嵌套的访问控制) 309: Dynamic Class-File Const ...

  5. react ES5 与ES6的写法

    ES5var React = require('react'); var ReactDOM = require('react-dom'); // 定义组件 var HelloMessage = Rea ...

  6. 如何解决Android Studio解决DDMS真机/模拟器无法查看data目录问题

    android app开发中,文件.SharedPreference或数据库默认保存在/data文件夹下,有时需要查看该文件夹下数据文件是否创建成功时,发现竟然打不开data目录: 具体解决方式如下: ...

  7. find命令归总

    -amin n  (主要指是否被读取过)对文件的最近一次访问是在 n 分钟之前. 例如:find /opt/* -amin 1 -type f  (找出1分钟之前的/opt下的所有文件) -atime ...

  8. SpringBoot 热启动

    在开发过程中,当写完一个功能我们需要运行应用程序测试,可能这个小功能中存在多个小bug,我们需要改正后重启服务器,这无形之中拖慢了开发的速度增加了开发时间,SpringBoot提供了spring-bo ...

  9. STOP OUR NEGATIVE THOUGHTS

    Do you ever feel like you're in over your head and at any moment you're going to burst? You're not a ...

  10. 665. Non-decreasing Array

    Given an array with n integers, your task is to check if it could become non-decreasing by modifying ...