js实现内置计时器


Posted in Javascript onDecember 16, 2019

计时器对于图片轮播和倒计时之类的与时间相关的项目有着很大的联系,它是实现这些的核心语法,如何一次深刻理解js计时器?往下看你就知道,有惊喜哦!

js计时器有两种,一种为延时后单次的执行,另一种为延时多次执行。通过函数的递归,前者也可以打破壁垒,拥有循环执行的功能。

setTimeout(  javascript语句  , 毫秒);
(其中第一个值可以是一个函数  需要加" ",也可以是代码)

//延迟一段时间 执行 执行一次

 setInterval("javascript语句"  , 毫秒);
(其中第一个值可以是一个函数  需要加" ",也可以是代码)

 //循环执行

具体实例 (一些细节和具体的用法还是在案例代码中便于理解)

<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>计时器</title>
  </head>
 
<body>
  <button id="none">停止计时器</button>
  <button id="start">开始计时器</button>
  <script>
    // 有两个计时器
    // setTimeout();
    // 延迟一段时间 执行 执行一次
    // setInterval();
    // 循环执行
    var stoptime=document.getElementById('none');//默认从零开始自加 获取开始按钮
    var starttime=document.getElementById('start');//获取停止按钮
    var count=0;
    var timecount;
    // 第一种
    /*showtime();
    function showtime(){
      count++;
      console.log(count);
      timecount=setTimeout('showtime()',1000);//延时一秒
    }//利用递归来实现循环时间
    stoptime.onclick=function(){//停止计时器
      clearTimeout(timecount);//将计时器清除,即停止自加
    }
    starttime.onclick=function(){//开始计时器
      timecount=setTimeout('showtime()',1000);//继续开始自加
    }*/
//优点:重启计时器简单,由于是原本是单次执行,只需将之前的递归函数重新复制即可 缺点:需要递归调用
    // 第二种
    showtime();
    function showtime(){//封装函数
      timecount=setInterval(function(){
        count++;
        console.log(count);
      },1000)
    }
    stoptime.onclick=function(){
      clearInterval(timecount);
    }
    starttime.onclick=function(){
      showtime();
    }
//优点:不需要递归调用,直接实现循环。缺点:重启较复杂,需要调用所有函数,建议封装函数。
  </script>
</body>
 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
解决FLASH需要点击激活的代码
Dec 20 Javascript
jquery右下角自动弹出可关闭的广告层
May 08 Javascript
详谈javascript异步编程
Feb 21 Javascript
jQuery UI Bootstrap是什么?
Jun 17 Javascript
详解前端路由实现与react-router使用姿势
Aug 07 Javascript
使用JS编写的随机抽取号码的小程序
Aug 11 Javascript
用Node提供静态文件服务的方法
Jul 06 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
Sep 01 Javascript
vue中input的v-model清空操作
Sep 06 Javascript
javascript实现弹出层效果
Dec 10 Javascript
js实现秒表计时器
Dec 16 #Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
Dec 16 #Javascript
js实现计时器秒表功能
Dec 16 #Javascript
原生Vue 实现右键菜单组件功能
Dec 16 #Javascript
axios如何取消重复无用的请求详解
Dec 15 #Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
Dec 15 #Javascript
Angular6项目打包优化的实现方法
Dec 15 #Javascript
You might like
一步一步学习PHP(8) php 数组
2010/03/05 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
2018/11/28 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
跟老齐学Python之模块的加载
2014/10/24 Python
python实现杨辉三角思路
2017/07/14 Python
python实现京东秒杀功能
2018/07/30 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
理工大学毕业生自荐信
2013/11/01 职场文书
高中的职业生涯规划书
2013/12/28 职场文书
业务员薪酬管理制度
2014/01/15 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
员工工作及收入证明
2014/10/28 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
休假证明书
2015/06/24 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
在 Python 中利用 Pool 进行多线程
2022/04/24 Python