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 相关文章推荐
javascript不同页面传值的改进版
Sep 30 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
Jan 15 Javascript
浅析Javascript使用include/require
Nov 13 Javascript
jQuery.each使用详解
Jul 07 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
Nov 05 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
Jul 25 Javascript
Vue中的异步组件函数实现代码
Jul 20 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
详解微信小程序-canvas绘制文字实现自动换行
Apr 26 Javascript
JS实现的字符串数组去重功能小结
Jun 17 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
May 06 Javascript
js实现简单的无缝轮播效果
Sep 05 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
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
详解php中生成标准uuid(guid)的方法
2019/04/28 PHP
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
Python获取网页上图片下载地址的方法
2015/03/11 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
python使用tkinter实现简单计算器
2018/01/30 Python
Python用字典构建多级菜单功能
2019/07/11 Python
django如何自己创建一个中间件
2019/07/24 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
期中考试反思800字
2014/05/01 职场文书
就业意向书
2014/07/29 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
go web 预防跨站脚本的实现方式
2021/06/11 Golang