js实现简单的秒表


Posted in Javascript onJanuary 16, 2020

本文实例为大家分享了js实现简单的秒表具体代码,供大家参考,具体内容如下

描述:

实现一个简单的秒表,点击启动按钮时开始计时,随后启动按钮变为暂停,

点击暂停暂停计时,点击复位回到最初始状态。

效果:

js实现简单的秒表

代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
 #showTime
 {
  width: 300px;
  height: 60px;
  font-size: 60px;
  line-height: 60px;
 }
 </style>
</head>
<body>
 <div>
 <div id="showTime">00:00:00</div>
 <button id="startBn">启动</button>
 <button id="restBn">复位</button>
 </div>
<script>
 //——————
 var time,showTime,startBn,restBn,pauseDate;
 //布尔开关
 var bool=false;
 //暂停的累计时间
 var pauseTime=0;
 
 init();
 function init() {
 showTime=document.getElementById("showTime");
 startBn=document.getElementById("startBn");
 restBn=document.getElementById("restBn");
 startBn.addEventListener("click",clickHandler);//开始按钮 ~ 暂停按钮
 restBn.addEventListener("click",clickHandler);//复位按钮
 setInterval(animation,16);
 }
 
 //转化时间函数
 function animation() {
 if(!bool) return;
 //前时间减去上次开启时间减去暂停累计时间
 var times=new Date().getTime()-time-pauseTime;
 var minutes=Math.floor(times/60000);//毫秒转化为分钟
 var seconds=Math.floor((times-minutes*60000)/1000);//已知分钟 
 将time减去分钟 除去1000得出 秒
 var ms=Math.floor((times-minutes*60000-seconds*1000)/10);//
 showTime.innerHTML=
  (minutes<10 ? "0" +minutes : minutes)+":"
  +(seconds<10 ? "0"+seconds :seconds)+":"
 +(ms<10 ? "0"+ms : ms);
 }
 
 //点击时的事件
 function clickHandler(e) {
 e= e || window.event;
 if(this===startBn){
  bool=!bool;
  if(bool){
  this.innerHTML="暂停";
  //如果我们上一次暂停时间是空,表示没有暂停过,因此,直接返回0
  //如果上次的暂停时间是有值得,用当前毫秒数减去上次的毫秒数,这样就会得到暂停时间
  pauseTime+=(!pauseDate ? 0 : new Date().getTime()-pauseDate);
  if(time) return;
  time=new Date().getTime();
  return;//是为bool判断跳出
  }
 
  this.innerHTML="启动";
  pauseDate=new Date().getTime();
  return;//是为this是否等于startBn判断跳出
 }
 startBn.innerHTML="启动";
 pauseTime=0;
 pauseDate=null;
 bool=false;
 time=0;
 showTime.innerHTML="00:00:00";
 }
 
</script>
</body>
</html>

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

Javascript 相关文章推荐
自己动手制作jquery插件之自动添加删除行的实现
Oct 13 Javascript
IE、FF浏览器下修改标签透明度
Jan 28 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
Oct 08 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
May 05 Javascript
Angular+Node生成随机数的方法
Jun 16 Javascript
js+html5实现复制文字按钮
Jul 15 Javascript
Vue CLI3基础学习之pages构建多页应用
Jun 02 Javascript
layui树形菜单动态遍历的例子
Sep 23 Javascript
微信小程序实现拖拽功能
Sep 26 Javascript
小程序点击图片实现png转jpg
Oct 22 Javascript
vue实现的封装全局filter并统一管理操作示例
Feb 02 Javascript
使用vue引入maptalks地图及聚合效果的实现
Aug 10 Javascript
JS 数组基本用法入门示例解析
Jan 16 #Javascript
js实现上下左右键盘控制div移动
Jan 16 #Javascript
vue-cli3 取消eslint校验代码的解决办法
Jan 16 #Javascript
jQuery实现数字华容道小游戏(实例代码)
Jan 16 #jQuery
js实现点击生成随机div
Jan 16 #Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
Jan 16 #Javascript
JS实现可视化音频效果的实例代码
Jan 16 #Javascript
You might like
PHP用GD库生成高质量的缩略图片
2011/03/09 PHP
php中对2个数组相加的函数
2011/06/24 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
PHP多个版本的分析解释
2011/07/21 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
PHP单链表的实现代码
2016/07/05 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
javascript 冒号 使用说明
2009/06/06 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
Python GUI编程完整示例
2019/04/04 Python
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
党员自我评价分享
2013/12/13 职场文书
美容师的职业规划书
2013/12/27 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
祝寿主持词
2015/07/02 职场文书