JavaScript 里面有两个定时器:setTimeout() 和 setInterval() 。

  区别

    setTimeout():相当于一个定时炸弹,隔一段时间执行,并且只会执行一次就不在执行了。

    setInterval(): 相当于一个闹钟,隔一段时间执行,并且会重复执行。

一、setTimeout()

  1、设置定时器(倒计时)

    语法格式

setTimeout(function() {},时间);

        这个函数需要两个参数:

      第一个参数是到时间后需要执行的函数,可以是匿名函数,也可以是命名函数;

      第二个参数是时间间隔,单位为毫秒(ms)。

    Demo:

 btn.onclick = function() {
setTimeout(function(){
alert("hello world");
},3000);
}

    当点击按钮3秒后,页面弹出 “hello world” 的对话框。

  2、取消定时器(倒计时)

    语法格式

var  timerId = setTimeout(function(){}, 时间间隔);
clearTimeout(timerId);

    声明定时器时会有一个返回值,是一个整数,即当前这个定时器的 标识

     在执行 clearTimeout() 这个函数时,在里面传入对应的 定时器的标识 即可取消当前的定时器。

二、setInterval()

  1、设置定时器

    语法格式

setInterval(function(){},时间间隔);

     这个函数需要两个参数:

      第一个参数是到时间后需要执行的函数,可以是匿名函数,也可以是命名函数;

      第二个参数是时间间隔,单位为毫秒(ms)。

  2、取消定时器

     语法格式

var  timerId = setInterval(function(){}, 时间间隔);
clearInterval(timerId);

      声明定时器时会有一个返回值,是一个整数,即当前这个定时器的 标识

     在执行 clearTimeout() 这个函数时,在里面传入对应的 定时器的标识 即可取消当前的定时器。

    Demo:距离2019年11月11日倒计时

  // 结构
<h1 class="title">距离光棍节,还有</h1> <div class="time-item">
<span><span id="day">00</span>天</span>
<strong><span id="hour">00</span>时</strong>
<strong><span id="minute">00</span>分</strong>
<strong><span id="second">00</span>秒</strong>
</div> <script>
// 目标时间
var endDate = new Date('2019-11-11 0:0:0');
// 获取 span
var spanDay = document.getElementById('day');
var spanHour = document.getElementById('hour');
var spanMinute = document.getElementById('minute');
var spanSecond = document.getElementById('second'); countdown();
setInterval(countdown, 1000); // 倒计时
function countdown() { // 计算时间差
// 当前时间
var startDate = new Date();
// 计算两个日期差
var interval = getInterval(startDate, endDate); setInnerText(spanDay, interval.day);
setInnerText(spanHour, interval.hour);
setInnerText(spanMinute, interval.minute);
setInnerText(spanSecond, interval.second); } // 获取两个日期的时间差
function getInterval(start, end) {
// 两个日期对象,相差的毫秒数
var interval = end - start;
// 求 相差的天数/小时数/分钟数/秒数
var day, hour, minute, second; // 两个日期对象,相差的秒数
// interval = interval / 1000;
interval /= 1000; day = Math.round(interval / 60 / 60 / 24);
hour = Math.round(interval / 60 / 60 % 24);
minute = Math.round(interval / 60 % 60);
second = Math.round(interval % 60); return {
day: day,
hour: hour,
minute: minute,
second: second
}
} </script>

  

JavaScript 之 定时器的更多相关文章

  1. JavaScript中定时器的暂停和继续

    对于JavaScript的定时器来说没有严格意义上的暂停和重启,只有清除停止,但是可以通过一些‘障眼法’实现 allChild[index].onclick = function(){//当点击目标且 ...

  2. day27—JavaScript实现定时器及其应用案例

    转行学开发,代码100天——2018-04-12 JavaScript中定时器有两种,分别是setInterval和setTimeout;其用法如下: 开启: setTimeout("fun ...

  3. Javascript中定时器的使用方法

    Javascript中定时器的使用方法 1.间隔定时器(每隔一段时间执行一次代码) 格式:setInterval(函数,时间) //时间单位是毫秒,每隔设置的时间执行函数里的内容一遍(一直执行) // ...

  4. JavaScript中定时器

    JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成.它们向任务队列添加定时任务. setTimeout() ...

  5. 理解JavaScript的定时器与回调机制

    定时器方法 JavaScript是单线程的.虽然HTML5已经开始支持异步js了. JavaScript的setTimeout与setInterval看起来就像已经是多线程的了.但实际上setTime ...

  6. JavaScript基础 -- 定时器

     js 定时器有以下两个方法: setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式.方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭. set ...

  7. JavaScript的定时器是如何工作的

    理解JavaScript定时器工作原理对于学习JavaScript非常重要.因为JavaScript是单线程运行的,定时器使用场合少,不是很直观.下面通过三个函数来学习JavaScript如何定义,操 ...

  8. JavaScript clearInterval定时器失效原因

    检查下是不是setInterval重复执行(两次以上<!-- 文件上传板块 --> <div id="adUploadWindow" class="ea ...

  9. 【javascript】定时器组件

    'use strict'; module.exports = function() { this.timer = {}; this.config = {}; // 初始化参数 this.init = ...

随机推荐

  1. 重新学习Spring注解——扩展原理

    39.扩展原理-BeanFactoryPostProcessor 40.扩展原理-BeanDefinitionRegistryPostProcessor 41.扩展原理-ApplicationList ...

  2. 常用dos命令(4)

    系统管理at 安排在特定日期和时间运行命令和程序shutdown立即或定时关机或重启taskkill结束进程(WinXPHome版中无该命令)tasklist显示进程列表(Windows XP Hom ...

  3. c# 关于反射

    反射的用途大体总结:1.使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从程序集中查找类型并创建该类型的实例.CreateInstance2.使用Module了解包含模块的程序集 ...

  4. Layui 新标签打开

    原文:https://blog.csdn.net/sr_www/article/details/81394365 layuiAdmin 后台管理模板 iframe版 在新标签中打开网页 / 在ifra ...

  5. T4模板 简单使用

    原文:https://www.cnblogs.com/sanduo8899/p/3964563.html <#@ template debug="false" hostspe ...

  6. C++标准库中的std::endl究竟做了什么?

    先抓出std::endl的源代码: /** *  @file  ostream *  @brief  Write a newline and flush the stream. * *  This m ...

  7. label的作用是什么?怎么用的?

    label便签用可以让用户点击文字区域,自动聚焦到当前项的input框. input设置id属性,label设置for属性,for属性的属性值为id属性值.

  8. 【BZOJ3508】开灯

    [BZOJ3508]开灯 题面 bzoj 题解 其实变为目标操作和从目标操作变回来没有区别,我们考虑从目标操作变回来. 区间整体翻转(\(\text{Xor}\;1\))有点难受,我们考虑将这个操作放 ...

  9. typora的使用技巧

    目录 Typora 的 markdown 语法 标题: 插入图片: 链接: 字体变化: 删除: 文字高亮: 角标: 文本方位: :-:| :- | -: 制作表格: 常用快捷键(补充): 下划线: T ...

  10. 第08组 Beta冲刺(2/5)

    队名:955 组长博客:点这里! 作业博客:点这里! 组员情况 组员1(组长):庄锡荣 过去两天完成了哪些任务 文字/口头描述 ?按照时间进度的安排进行相应的检查 展示GitHub当日代码/文档签入记 ...