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 相关文章推荐
5秒后跳转到另一个页面的js代码
Oct 12 Javascript
jquery实现删除一个元素后面的所有元素功能
Dec 21 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
Node.js调试技术总结分享
Mar 12 Javascript
vue 添加vux的代码讲解
Nov 30 Javascript
分享ES6的7个实用技巧
Jan 18 Javascript
angular5 子组件监听父组件传入值的变化方法
Sep 30 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
Sep 30 Javascript
微信小程序云开发之使用云存储
May 17 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
Jun 24 Javascript
浅谈Vue项目骨架屏注入实践
Aug 05 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
Oct 29 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数组中的重复值的实现代码
2011/07/17 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
javascript表单正则应用
2017/02/04 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
Python 专题一 函数的基础知识
2017/03/16 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
python中append实例用法总结
2019/07/30 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
客服工作职责
2013/12/11 职场文书
教师节宣传方案
2014/05/23 职场文书
跑操口号
2014/06/12 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
Nginx反向代理、重定向
2022/04/13 Servers
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL