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 相关文章推荐
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
Feb 14 Javascript
Jquery中val()表单取值赋值的实例代码
Aug 15 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
Oct 17 Javascript
使用JS+plupload直接批量上传图片到又拍云
Dec 01 Javascript
javascript函数声明和函数表达式区别分析
Dec 02 Javascript
Highcharts使用简例及异步动态读取数据
Dec 30 Javascript
浅谈webpack下的AOP式无侵入注入
Nov 12 Javascript
vue 实现剪裁图片并上传服务器功能
Mar 01 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
Oct 28 Javascript
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
关于vue 结合原生js 解决echarts resize问题
Jul 26 Javascript
实现vuex原理的示例
Oct 21 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 注册时输入信息验证器的实现详解
2013/07/05 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
python写的ARP攻击代码实例
2014/06/04 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
摩顿布朗英国官方网上商店:奢华沐浴、身体和头发护理
2016/10/29 全球购物
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
实习生单位鉴定意见
2013/12/04 职场文书
爱情检讨书大全
2014/01/21 职场文书
美术国培研修感言
2014/02/12 职场文书
入党自我鉴定
2014/03/25 职场文书
收款授权委托书
2014/10/02 职场文书
环卫个人总结
2015/03/03 职场文书
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL