JavaScript 之 定时器
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 之 定时器的更多相关文章
- JavaScript中定时器的暂停和继续
对于JavaScript的定时器来说没有严格意义上的暂停和重启,只有清除停止,但是可以通过一些‘障眼法’实现 allChild[index].onclick = function(){//当点击目标且 ...
- day27—JavaScript实现定时器及其应用案例
转行学开发,代码100天——2018-04-12 JavaScript中定时器有两种,分别是setInterval和setTimeout;其用法如下: 开启: setTimeout("fun ...
- Javascript中定时器的使用方法
Javascript中定时器的使用方法 1.间隔定时器(每隔一段时间执行一次代码) 格式:setInterval(函数,时间) //时间单位是毫秒,每隔设置的时间执行函数里的内容一遍(一直执行) // ...
- JavaScript中定时器
JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成.它们向任务队列添加定时任务. setTimeout() ...
- 理解JavaScript的定时器与回调机制
定时器方法 JavaScript是单线程的.虽然HTML5已经开始支持异步js了. JavaScript的setTimeout与setInterval看起来就像已经是多线程的了.但实际上setTime ...
- JavaScript基础 -- 定时器
js 定时器有以下两个方法: setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式.方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭. set ...
- JavaScript的定时器是如何工作的
理解JavaScript定时器工作原理对于学习JavaScript非常重要.因为JavaScript是单线程运行的,定时器使用场合少,不是很直观.下面通过三个函数来学习JavaScript如何定义,操 ...
- JavaScript clearInterval定时器失效原因
检查下是不是setInterval重复执行(两次以上<!-- 文件上传板块 --> <div id="adUploadWindow" class="ea ...
- 【javascript】定时器组件
'use strict'; module.exports = function() { this.timer = {}; this.config = {}; // 初始化参数 this.init = ...
随机推荐
- 如何修改dedecms专题目录默认名称special
专题有一个聚合的效果,一般会比普通的文章页更符合用户需求.如果用dedecms建专题的话,默认的目录是special,怎么修改修改dedecms专题目录名称呢,比如将/special/改为/s/这样更 ...
- java任务调度之Timer定时器
定时器相信大家都不陌生,平时使用定时器就像使用闹钟一样,我们可以在固定的时间做某件事,也可以在固定的时间段重复做某件事,今天就来分析一下java中自带的定时任务器Timer. 一.Timer基本使用 ...
- c语言中的数据变量类型,大小
C中有哪些数据类型? 回答: 有两种类型的数据类型,用户定义和预定义.预定义的数据类型是int,char,float,double等,用户使用标签struct,union或enum创建用户定义的数据类 ...
- Debian 安装docker
1 $ curl -fsSL get.docker.com -o get-docker.sh 2 $ sudo sh get-docker.sh --mirror Aliyun
- 踩iviewui中Tabs 标签页数据绑定坑
今天小颖要实现点击Tabs 标签页中每个标签,并动态获取当前点击的标签值. 一句话说不清楚,那就看动态图吧 小颖一开始看官网写的代码是: <template> <Tabs :valu ...
- 11-散列2 Hashing (25 分)
The task of this problem is simple: insert a sequence of distinct positive integers into a hash tabl ...
- PHP读取文件内容的五种方式
-----第一种方法-----fread()-------- <?php $file_path = "test.txt"; if(file_exists($file_path ...
- 抓住九月的尾巴分享一个插件XLSX
git官网 安装: cnpm install --save xlsx file-saver .vue文件中:1. 引用table插件/自己写table布局 <el-table id=" ...
- 将行数据转换成Java(POJO)对象
工作中经常会遇到将行数据转换成Java(POJO)对象的场景,其中关于字段校验和类型转换的处理繁琐而冗余,对于有代码洁癖的人着实不能忍.这里分享下自己封装的工具代码,也许能够帮助你更简单地完成此类任务 ...
- Android Q Beta 6 终极测试版发布!
前言 当今手机市场可谓是百花齐放,但手机系统却屈指可数,其中Android和iOS就占据了整个手机系统市场的99%,单单Android就占据了整个手机系统市场的86%,可谓是占据绝对优势. 其 ...