我有两个问题。我做的是一个00:00:00的跑秒定时器。
第一个问题:怎么让setInterval实现暂停呢。
第二个问题:假如时间暂停之后停在00:00:35,再点继续怎么样让定时器从00:00:35继续跑呢。
我的定时器代码如下,你们可以直接复制运行:<!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>
<style> 
</style> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<script language="javascript" type="text/javascript">
var h,m,s,hstr,mstr,sstr,timestr;
var etime = 0; //总秒数function timer()
{
h = Math.floor(etime / 3600); //时
m = Math.floor(etime / 60) % 60; //分
s = Math.floor(etime % 60); //秒

h < 0 ? h = 0 : h = h;
m < 0 ? m = 0 : m = m;
s < 0 ? s = 0 : s = s;

h.toString().length < 2 ? hstr = "0" + h.toString() : hstr = h; //1显示01
m.toString().length < 2 ? mstr = "0" + m.toString() : mstr = m; //1显示01
s.toString().length < 2 ? sstr = "0" + s.toString() : sstr = s; //1显示01

timestr = hstr + ":" + mstr + ":" + sstr;

document.getElementById("timer").innerText=timestr;

etime = etime + 1;
}
</script></head><body onload="window.setInterval('timer()',1000);">
<div id="timer" name="timer" class="timer"></div>
</body>
</html>

解决方案 »

  1.   

    你得定义一个变量 var p_timer=window.setInterval('timer()',1000)
    清除
    window.clearInterval(p_timer)
    重新启动的话 你重新定义就行
      

  2.   

    clearInterval 清除定时器你的全局变量保存了上次运行后的时间,重新调用 setInterval 就可以继续了。如果是重新计时,把全局变量设置为0 就好了
      

  3.   

    而且setInterval('timer()',1000)的时间有偏差,你依赖这个计时时间不会准的。。