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学习笔记之相等符号与严格相等符号
Nov 23 Javascript
不用一句js代码初始化组件
Jan 27 Javascript
使用node+vue.js实现SPA应用
Jan 28 Javascript
js实现简单的省市县三级联动效果实例
Feb 18 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
Feb 25 Javascript
angularjs ui-router中路由的二级嵌套
Mar 10 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
Mar 19 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
Jan 16 Javascript
在js代码拼接dom对象到页面上的模板总结
Oct 21 Javascript
微信小程序云开发之使用云函数
May 17 Javascript
JS+css3实现幻灯片轮播图
Aug 14 Javascript
vue如何实现关闭对话框后刷新列表
Apr 08 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
php adodb操作mysql数据库
2009/03/19 PHP
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
JS动画效果代码3
2008/04/03 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
python检索特定内容的文本文件实例
2018/06/05 Python
Python用字典构建多级菜单功能
2019/07/11 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
长青弘远的面试题
2012/06/09 面试题
本科毕业生自荐信
2014/06/02 职场文书
公民代理授权委托书
2014/09/24 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
岗位聘任报告
2015/03/02 职场文书
电力培训学习心得体会
2016/01/11 职场文书
优质护理心得体会
2016/01/22 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL