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 相关文章推荐
JS 控制CSS样式表
Aug 20 Javascript
Ajax搜索结果页面下方的分页按钮的生成
Apr 05 Javascript
jquery数组过滤筛选方法grep()简介
Jun 06 Javascript
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 Javascript
vue.js学习之递归组件
Dec 13 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
Aug 04 Javascript
react-router v4如何使用history控制路由跳转详解
Jan 09 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
Nov 13 Javascript
vue cli 3.x 项目部署到 github pages的方法
Apr 17 Javascript
js实现小时钟效果
Mar 25 Javascript
解决vue-router路由拦截造成死循环问题
Aug 05 Javascript
Openlayers+EasyUI Tree动态实现图层控制
Sep 28 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生成树的方法
2015/07/28 PHP
JavaScript事件列表解说
2006/12/22 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
python调用shell的方法
2013/11/20 Python
python模块之StringIO使用示例
2015/04/08 Python
使用Python操作MySQL的一些基本方法
2015/08/16 Python
Python函数式编程
2017/07/20 Python
python 异或加密字符串的实例
2018/10/14 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
Python魔术方法专题
2020/06/19 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
南威尔士家居商店:Leekes
2016/10/25 全球购物
学生学习总结的自我评价
2013/10/22 职场文书
班班通项目实施方案
2014/02/25 职场文书
师德演讲稿范文
2014/05/06 职场文书
机关党员公开承诺书
2014/08/30 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
2016年教代会开幕词
2016/03/04 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS