码迷,mamicode.com
首页 > 编程语言 > 详细

javascript实现的秒表效果代码

时间:2015-12-30 13:01:32      阅读:547      评论:0      收藏:0      [点我收藏+]

标签:

javascript实现的秒表效果代码:
关于秒表效果,自然不会陌生,下面将分析一个实例来介绍一下如何通过原生javascript实现此效果。
代码如下:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=" utf-8"> 
<meta name="author" content="http://www.softwhy.com/" />
<title>javascript实现的秒表效果-蚂蚁部落</title> 
<style type="text/css"> 
#container{ 
  margin:0 auto; 
  margin-top:10%; 
  width:200px; 
} 
#timer{ 
  border:red double 1px; 
  width:180px; 
  height:76px; 
  line-height:76px; 
  font-size:32pt; 
  color:green; 
} 
input{ 
  width:87px; 
} 
</style> 
<script type="text/javascript">
window.onload=function(){
  var ctrl=document.getElementById("ctrl"); 
  var myreset=document.getElementById("myreset");
  var timer=document.getElementById("timer");
  init(timer,ctrl);
  myreset.setAttribute("onclick", "init(timer,ctrl)");  
}
var hour, minute, second;
var t;
var init=function(theTimer,TheCtrl){ 
  theTimer.innerHTML="00:00:00"; 
  hour=minute=second=0; 
  TheCtrl.setAttribute("value", "开始");
  TheCtrl.setAttribute("onclick", "startit()"); 
  clearTimeout(t); 
}  
function startit(){ 
  second++; 
  if(second>=60){ 
    second = 0; 
    minute++; 
  } 
  if(minute>=60){ 
    minute = 0; 
    hour++; 
  } 
  timer.innerHTML=j(hour)+":"+j(minute)+":"+j(second); 
  ctrl.setAttribute("value", "暂停/停止"); 
  ctrl.setAttribute("onclick", "pause()");
  t=setTimeout("startit()", 1000);  
} 
var j = function(arg){ 
  return arg>=10 ? arg : "0" + arg; 
} 
var pause = function(){ 
  clearTimeout(t); 
  ctrl.setAttribute("onclick", "startit()"); 
  ctrl.setAttribute("value", "继续"); 
} 
</script>
</head> 
<body> 
<div id="container"> 
   <div id="timer"></div> 
   <input type="button" id="ctrl" /> 
   <input type="reset" id="myreset"/>
</div> 
</body> 
</html> 

以上代码实现了秒表效果,下面就介绍一下此特效的实现过程:
一.实现原理:
原理比较简单,就是使用setTimeout()函数不断的递归调用startit()函数,此函数可以每运行一次增加一秒,然后判断秒、分是否大于60,如果大于则按照时间法则进行进位或者清零,最后再将当前时间值写入timer中,这样就实现了秒表效果,关于开始,暂停这里就不多介绍了,可以看参考代码注释。
二.代码注释:
1.window.onload=function(){},当文档内容完全加载完毕再去执行函数中的代码。
2.var ctrl=document.getElementById("ctrl"),获取id属性值为ctrl的对象元素。
3.var myreset=document.getElementById("myreset"),获取id属性值为myreset的对象元素。
4.var timer=document.getElementById("timer"),获取id属性值为timer的对象元素。
5.init(timer,ctrl),调用函数并传递参数执行。
6.myreset.setAttribute("onclick", "init(timer,ctrl)"),为重置按钮注册事件处理函数。
7.var hour, minute, second,声明三个变量,分别用来表示时间的小时、分钟和秒。
8.var t,声明一个变量用来存储setTimeout()函数的返回值。
9.var init=function(theTimer,TheCtrl){},声明一个函数用来初始化秒表效果,第一个参数是显示秒表效果的元素对象,第二个参数是开始按钮对象。
10.theTimer.innerHTML="00:00:00",将theTimer元素的内容设置为="00:00:00"。
11.hour=minute=second=0,将三个变量的值分别设置为0。
12.TheCtrl.setAttribute("value", "开始"),将开始按钮的value属性值设置为“开始”。
13.TheCtrl.setAttribute("onclick", "startit()"),为开始按钮注册onclick事件处理函数。
14.clearTimeout(t),停止setTimeout()函数的执行。
15.function startit(){},声明一个函数。
16.second++,秒加1.
17.if(second>=60),如果秒数大于等于60,则将second清零,并将minute加1。
18.timer.innerHTML=j(hour)+":"+j(minute)+":"+j(second),将timer的内容设置为当前的秒表值。
19.ctrl.setAttribute("value", "暂停/停止"),将开始按钮的value属性值设置为暂停/停止"。
20.ctrl.setAttribute("onclick", "pause()"),为开始按钮注册onclick事件处理函数。
21.t=setTimeout("startit()",1000),一秒后,再次调用startit()函数。
22.var j=function(arg){return arg>=10 ? arg : "0" + arg;},用于判断当前时间各单位的数值是否大于等于10,如果大于在使用原数值,如果不小于10,则在前面添加0,这是使用了三元运算符。
23.var pause = function(){},声明一个函数用于暂停秒表。
24.clearTimeout(t),停止setTimeout()函数的运行。
25.ctrl.setAttribute("onclick", "startit()"),为开始按钮注册onclick事件处理函数。
26.ctrl.setAttribute("value", "继续"),将开始按钮的value属性值设置为“继续”。
三.相关阅读:
1.setAttribute()函数可以参阅setAttribute()函数的用法详解一章节。
2.setTimeout()函数可以参阅window对象的setTimeout()方法一章节。
3.关于三元运算符可以参阅三元运算符用法详解一章节。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=8524

更多内容可以参阅:http://www.softwhy.com/javascript/

javascript实现的秒表效果代码

标签:

原文地址:http://www.cnblogs.com/zhadanren/p/5088304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!