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 相关文章推荐
PPK 谈 JavaScript 的 this 关键字 [翻译]
Sep 29 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
Jan 23 Javascript
js取消单选按钮选中示例代码
Nov 14 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
Nov 18 Javascript
JavaScript中Math对象方法使用概述
Jan 02 Javascript
javascript中sort()的用法实例分析
Jan 30 Javascript
简介JavaScript中strike()方法的使用
Jun 08 Javascript
AngularJS表单提交实例详解
Feb 18 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
Aug 22 Javascript
浅谈vue项目可以从哪些方面进行优化
May 05 Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
Aug 13 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
图象函数中的中文显示
2006/10/09 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
JS实现针对给定时间的倒计时功能示例
2017/04/11 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
JS实现简单贪吃蛇小游戏
2020/10/28 Javascript
[49:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 KG VS TNC
2018/03/31 DOTA
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python向已存在的excel中新增表,不覆盖原数据的实例
2018/05/02 Python
python write无法写入文件的解决方法
2019/01/23 Python
深入浅析Python中的迭代器
2019/06/04 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
如何将整数int转换成字串String
2014/03/21 面试题
送货司机岗位职责
2013/12/11 职场文书
校园新闻广播稿
2014/01/10 职场文书
车间机修工岗位职责
2014/02/28 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
离婚案件被告代理词
2015/05/23 职场文书
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android