首先,css和html
<section> <div class="minute"></div> <div class="second"></div> <div class="mill"></div> </section> <button class="start">开始</button> <button class="stop">暂停</button> <button class="over">结束</button>
div { width: 100px; height: 50px; font-size: 40px; border: 1px solid red; float: left; line-height: 50px; text-align: center; }
js代码
//获取元素 var minutes = document.querySelector('.minute') var seconds = document.querySelector('.second') var mills = document.querySelector('.mill') var stop = document.querySelector('.stop') var div = document.querySelector('div') var over = document.querySelector('.over') var start = document.querySelector('.start') //在全局变量中设置分、秒、和毫秒、还有定时器,方便后边做清除 var timer = null var mill = 0 var s = 0 var m = 0 //点击开始按钮 start.addEventListener('click', function () { //创建定时器之前先清除一下定时器,以免重复按开始按钮导致定时器过多,速度过快 clearInterval(timer) //创建定时器 timer = setInterval(function () { //毫秒每次加一 mill += 1 //当毫秒加到250的时候进行判断 if (mill === 250) { //加到250是,毫秒数恢复为0,秒数加一 mill = 0 s += 1 //判断当秒数加到60的时候 if (s === 60) { //秒数恢复为0,分钟加一 s = 0 m += 1 } } //将所加的毫秒、分钟、秒都加到div中 minutes.innerHTML = m seconds.innerHTML = s mills.innerHTML = mill }) }) //按下停止按钮,停止定时器,但是里面是的数值并不会恢复为0 //停止按钮 stop.addEventListener('click', function () { clearInterval(timer) }) //按下清空按钮,停止定时器,让所有的数为零,并将div中的数字清空 //清空按钮 over.addEventListener('click', function () { clearInterval(timer) mill = 0 s = 0 m = 0 minutes.innerHTML = m seconds.innerHTML = s mills.innerHTML = mill })
此外,我们还可以利用事件戳制作秒表,事件戳制作会更精准,
先获取事件戳(这个事件戳会一直随着事件走而走)
然后创建点击事件,获取点击时候的时间戳,(这个事件戳就是点击时候的时间,不会发生改变)
然后利用先获取的时间戳减去点击的时间戳,得到开始的事件。
js代码如下(html和css样式跟上面相同)
//获取样式 var minutes = document.querySelector('.minute') var seconds = document.querySelector('.second') var mills = document.querySelector('.mill') var stop = document.querySelector('.stop') var div = document.querySelector('div') var over = document.querySelector('.over') var start = document.querySelector('.start') //创建初始的时间戳、定时器 var newTime = new Date().getTime() var timer = null var now ; //点击事件 start.addEventListener('click', function () { //开始定时器 timer = setInterval(function () { //获取点击时的时间戳 now = +new Date //两个时间戳想减,得到相差的时间,就是点击后秒表的时间 var timers = now - newTime //进行取证,取模,得到分和秒 var minute = parseInt(timers / 1000 / 60 % 60) //如果小于10,在前面加上0,(美观) var minute = minute < 10 ? '0' + minute : minute var second = parseInt(timers / 1000 % 60) //如果小于10,在前面加上0,(美观) var second = second < 10 ? '0' + second : second var mill = parseInt(timers % 250) //将时间添加到div中 minutes.innerHTML = minute seconds.innerHTML = second mills.innerHTML = mill }, 20) }) //停止按钮 stop.addEventListener('click', function () { clearInterval(timer) })
如发现问题欢迎留言!!!(你我都在加强的路上)