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 相关文章推荐
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
May 06 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
Mar 26 Javascript
javascript时间函数大全
Jun 30 Javascript
jquery+easeing实现仿flash的载入动画
Mar 10 Javascript
提高jQuery性能优化的技巧
Aug 03 Javascript
基于javascript制作微信聊天面板
Aug 09 Javascript
浅谈js中的变量名和函数名重名
Feb 13 Javascript
JavaScript中使用参数个数实现重载功能
Sep 01 Javascript
layui点击按钮添加可编辑的一行方法
Aug 15 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
Nov 20 Javascript
Vue组件间的通信pubsub-js实现步骤解析
Mar 11 Javascript
如何在 Vue 表单中处理图片
Jan 26 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
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
php格式化金额函数分享
2015/02/02 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
python manage.py runserver流程解析
2019/11/08 Python
什么是.net的Remoting技术
2016/07/08 面试题
小学生志愿者活动方案
2014/08/23 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript