正-计时器:实现从0开始一直向上计时,点停止时,就停止计时;点开始时再接着计时
写计时器时,自己遇到的问题:
1、连续点击开始时,数字加的很快
解决此问题的思路:定义个变量初使值为真,如(var b=true);在开始按钮里,变量为真时,才执行定时器,接着给变量设为flase;再停止按钮时变量设为ture。
下面是完整的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
#num{ 100px; height:20px; border:#000 solid 1px;}
</style>
</head>
<body>
<div id="num"></div>
<button type="button" name="" id="btn1">开始</button>
<button type="button" name="" id="btn2">停止</button>
<script>
var i=0;
var h=true;//通过这个变量来解决连继点击开始出现数字加速的问题
var a=null;
var num=document.getElementById("num");
var btn1=document.getElementById("btn1");
var btn2=document.getElementById("btn2");
function c(){
num.innerHTML=i;
i++;
}
a=setInterval("c()",1000);
btn1.onclick=function(){
h && (a=setInterval("c()",1000));//当h为真时才执行计时
h=false;
}
btn2.onclick=function(){
clearInterval(a);
h=true;
}
</script>
</body>
</html>