秒表最核心的功能是計時。每個人的手機上都有秒表功能,打開手機就可以看到。我們可以看看手機上的秒表是怎么樣的。
手機上的秒表有分鍾和秒,有一個開始按鈕,點擊開始按鈕,秒表就開始計時,當秒走到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>
這樣,一個簡單的秒表計時功能就實現了。
當然,這里實現的只是一個秒表最最簡單最最基礎的功能。一個好的秒表還需要能夠暫停、能夠重置、能夠計次。在接下來我會把這些功能一點一點加上去。
