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压缩工具:X2JSCompactor
Jun 13 Javascript
jQuery+ajax实现顶一下,踩一下效果
Jul 17 Javascript
JavaScript自定义日期格式化函数详细解析
Jan 14 Javascript
node.js中的fs.mkdir方法使用说明
Dec 17 Javascript
jquery实现select选择框内容左右移动代码分享
Nov 21 Javascript
有关JavaScript中call()和apply() 的一些理解
May 20 Javascript
分分钟玩转Vue.js组件
Oct 25 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
Mar 03 Javascript
Vue.js的复用组件开发流程完整记录
Nov 29 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
Nov 01 Javascript
JavaScript实现PC端横向轮播图
Feb 07 Javascript
微信小程序自定义扫码功能界面的实现代码
Jul 02 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
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
php调用shell的方法
2014/11/05 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
php封装的page分页类完整实例
2016/10/18 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
js版本A*寻路算法
2006/12/22 Javascript
javascript eval函数深入认识
2009/02/21 Javascript
小议Javascript中的this指针
2010/03/18 Javascript
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
VsCode与Node.js知识点详解
2019/09/05 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
python使用tornado实现简单爬虫
2018/07/28 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
心理健康心得体会
2014/01/02 职场文书
上课说话检讨书大全
2014/01/22 职场文书
文艺晚会策划方案
2014/06/11 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
高一军训口号
2015/12/25 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
bose降噪耳机音能消除人声吗
2022/04/19 数码科技