秒表最核心的功能是计时。每个人的手机上都有秒表功能,打开手机就可以看到。我们可以看看手机上的秒表是怎么样的。
手机上的秒表有分钟和秒,有一个开始按钮,点击开始按钮,秒表就开始计时,当秒走到59的时候,分钟加1,秒归零。
下面是实现这个功能的代码。
<html>
<head>
<title>秒表</title>
<meta charset="utf-8">
<style>
*{
margin: 0;
padding: 0;
}
#container{
width:200px;
height: 180px;
background: #ccc;
text-align: center;
margin: 100px auto;
padding-top: 20px;
}
#container button{
margin-top: 20px;
}
</style>
</head>
<body>
<div id="container">
<p id="time">00:00</p>
<button id="start">开始</button>
</div>
<script>
//我需要两个变量来分别存储秒数和分钟数
var second = 0;
var minute = 0;
//然后需要一个变量来存储我的定时器
var int;
function timer(){ //声明一个timer函数,在这个函数里实现我的功能。
second += 1; //秒数加1
if(second > 59){
second = 0; //当秒数大于59的时候,让秒数重新归零。
minute += 1; //分钟数加1
}
//然后将秒和分钟追加到dom里,为了保持00:00这样的格式,我们需要做一些简单的判断
if(minute < 10){
document.getElementById('time').innerHTML = '0' + minute + ":0" + second;
if(second < 10){
document.getElementById('time').innerHTML = '0' + minute + ":0" + second;
}else{
document.getElementById('time').innerHTML = '0' + minute + ":" + second;
}
}else{
document.getElementById('time').innerHTML = minute + ":0" + second;
if(second < 10){
document.getElementById('time').innerHTML = minute + ":0" + second;
}else{
document.getElementById('time').innerHTML = minute + ":" + second;
}
}
}
//然后我创建一个定时器来执行timer函数,在js中,1000毫秒等于1秒。我可以让这个定时器每隔1000毫秒执行一次timer函数。我想要的效果是点击开始按钮的时候再执行这个定时器。
//我可以把这个定时器放在一个函数里,在我点击开始按钮的时候运行这个函数即可。
function start(){
//在每次点击开始按钮时,我们需要先清除一下定时器,然后再执行定时器,原因是如果不清除,每次点击开始按钮,定时器都会累加,会导致计时越来越快的bug
clearInterval(int);
int = setInterval(timer,1000);
}
var startBtn = document.getElementById('start');
startBtn.onclick = function(){
start();
}
</script>
</body>
</html>
这样,一个简单的秒表计时功能就实现了。
当然,这里实现的只是一个秒表最最简单最最基础的功能。一个好的秒表还需要能够暂停、能够重置、能够计次。在接下来我会把这些功能一点一点加上去。
