JavaScript定时器设置、使用与倒计时案例详解


Posted in Javascript onJuly 08, 2019

本文实例讲述了JavaScript定时器设置、使用与倒计时案例。分享给大家供大家参考,具体如下:

1、设置定时器

定时器,适用于定时执行的任务中。在BOM的window对象中,有这样的两个函数是用于设置定时器

setTimeout(function,delay);//设置延时多少毫秒执行该函数,只执行一次,返回值是一个id
setInterval(function,delay);//设置间隔多少毫米一直执行该函数,执行多次,返回值是一个id

两者的区别就在于setTimeout方式只执行一次,而setInterval理论可以执行无数次,直到其被取消。

2、取消定时器

上面说过,在开启定时器会返回一个id,这个id是用来区别开启的多个定时器。当我们要取消定时器时,可以使用一下这两个方法。

clearTimeout(id);//取消由setTimeout方式开启的定时器
clearInterval(id);//取消由setInterval方式开启的定时器

3、循环调用setTimeout

在使用中,可以用setTimeout方式来实现setInterval的效果,其实这个让我想起了当初学Android是的Handler机制,发一个延时消息,然后在内容中再发出消息。例如:

<script>
  var t = 1;
  function time(){
    console.log(t++);
    window.setTimeout('time()',1000);
  }
  window.setTimeout('time()',1000);
</script>

4、倒计时案例

在页面上有一个按钮,显示的是倒计时的数字,每隔一秒修改数字,等到0秒时,就切换爆炸图片。

效果图

JavaScript定时器设置、使用与倒计时案例详解
JavaScript定时器设置、使用与倒计时案例详解

代码

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title></title>
  <link rel="stylesheet" href="">
</head>
<body>
  <h1>炸弹效果</h1>
  <input type="button" value="5" /><br/>
  <img src="warn.jpg"/>
</body>
<script>
  //定时执行
  function time(){
    var input = document.getElementsByTagName('input')[0];//获取按钮中的数字
    var time = parseInt(input.value) - 1;
    input.value = time;
    //爆炸操作
    if(time <= 0){
      var img = document.getElementsByTagName('img')[0];
      img.src = 'boom.jpg';//切换爆照图片
      clearInterval(t1);//清除定时器
    }
  }
  var t1 = window.setInterval('time()',1000);//开启定时器
</script>
</html>

思路

其实这个例子挺简单的,首先以每隔1秒开启定时器,在定时执行函数中每次获取当前倒计时的数字,然后进行减1操作,最后又赋值到按钮中,当数字小于或等于0秒时,就切换爆炸图片已达到爆炸效果,此时不要忘记取消定时器了。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 检测浏览器和操作系统的脚本
Dec 26 Javascript
js通过元素class名字获取元素集合的具体实现
Jan 06 Javascript
完美实现bootstrap分页查询
Dec 09 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
Aug 23 Javascript
js获取json中key所对应的value值的简单方法
Jun 17 Javascript
canvas轨迹回放功能实现
Dec 20 Javascript
angular 内存溢出的问题解决
Jul 12 Javascript
浅谈KOA2 Restful方式路由初探
Mar 14 Javascript
详解JavaScript中new操作符的解析和实现
Sep 04 Javascript
vue 动态生成拓扑图的示例
Jan 03 Vue.js
JavaScript实现H5接金币功能(实例代码)
Feb 22 Javascript
vue-router中hash模式与history模式的区别
Jun 23 Vue.js
Vue实现拖放排序功能的实例代码
Jul 08 #Javascript
JavaScript中Dom操作实例详解
Jul 08 #Javascript
JavaScript实现五子棋游戏的方法详解
Jul 08 #Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 #Javascript
ElementUI Tag组件实现多标签生成的方法示例
Jul 08 #Javascript
利用不到200行代码写一款属于你自己的js类库
Jul 08 #Javascript
Vue中util的工具函数实例详解
Jul 08 #Javascript
You might like
一个php作的文本留言本的例子(三)
2006/10/09 PHP
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
基于jquery的Repeater实现代码
2010/07/17 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
原生JS实现留言板
2020/03/26 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
Python科学计算之NumPy入门教程
2017/01/15 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
python时间time模块处理大全
2020/10/25 Python
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
大学生饮食连锁店创业计划书
2014/01/17 职场文书
幼儿教师国培感言
2014/02/19 职场文书
股东协议书范本
2014/04/14 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电
python的html标准库
2022/04/29 Python