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 相关文章推荐
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
Sep 28 Javascript
原生js事件的添加和删除的封装
Jul 01 Javascript
node.js中的fs.closeSync方法使用说明
Dec 17 Javascript
遍历js中对象的属性和值的实例
Nov 21 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
Dec 19 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
微信小程序 设置启动页面的两种方法
Mar 09 Javascript
详解Vue 非父子组件通信方法(非Vuex)
May 24 Javascript
node.js 利用流实现读写同步,边读边写的方法
Sep 11 Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 Javascript
element vue Array数组和Map对象的添加与删除操作
Nov 14 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
Sep 11 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
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
php单例模式实现方法分析
2015/03/14 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
jQuery Selector选择器小结
2010/05/06 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
python向图片里添加文字
2019/11/26 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
2020/02/10 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
大学生就业自我鉴定
2013/10/26 职场文书
小学数学课后反思
2014/04/23 职场文书
五一劳动节活动总结
2015/02/09 职场文书
开票员岗位职责
2015/02/12 职场文书
工程部部长岗位职责
2015/02/12 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
正确使用MySQL update语句
2021/05/26 MySQL