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的目的分析
Jan 05 Javascript
用jquery实现学校的校历(asp.net+jquery ui 1.72)
Jan 01 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
Apr 20 Javascript
JS中怎样判断undefined(比较不错的方法)
Mar 27 Javascript
Jquery 点击按钮自动高亮实现原理及代码
Apr 25 Javascript
jquery使用animate方法实现控制元素移动
Mar 27 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 Javascript
JavaScript严格模式下关于this的几种指向详解
Jul 12 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
Sep 01 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 Javascript
让IDE识别webpack的别名alias的实现方法
May 06 Javascript
OpenLayers3实现地图显示功能
Sep 25 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
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
yii分页组件用法实例分析
2015/12/28 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
什么是JavaScript
2009/08/13 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
Element Input组件分析小结
2018/10/11 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
你的自行车健身专家:FaFit24
2016/11/16 全球购物
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
师德模范事迹材料
2014/06/03 职场文书
人大调研汇报材料
2014/08/14 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
MySQL的存储过程和相关函数
2022/04/26 MySQL
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server