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 相关文章推荐
jQuery内容过滤选择器用法分析
Feb 10 Javascript
JavaScript中操作Mysql数据库实例
Apr 02 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
Nov 22 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
Dec 01 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
Jan 23 Javascript
vue项目打包后怎样优雅的解决跨域
May 26 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 jQuery
使用webpack/gulp构建TypeScript项目的方法示例
Dec 18 Javascript
Webpack设置环境变量的一些误区详解
Dec 19 Javascript
js get和post请求实现代码解析
Feb 06 Javascript
js实现可爱的气泡特效
Sep 05 Javascript
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
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
jquery实现自适应banner焦点图
2017/02/16 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
python正则表达式中的括号匹配问题
2014/12/14 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
python opencv之分水岭算法示例
2018/02/24 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
python简单实现AES加密和解密
2019/03/28 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
Python Sphinx使用实例及问题解决
2020/01/17 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
一套带网友答案的.NET笔试题
2016/12/06 面试题
后勤服务中心总经理工作职责
2014/03/03 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
婚育证明样本
2015/06/16 职场文书