javascript实现的秒表效果代码

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/

时间: 2025-01-09 11:14:41

javascript实现的秒表效果代码的相关文章

js实现的数字四舍五入效果代码实例

js实现的数字四舍五入效果代码实例:下面直接给出能够截取指定位数字符串,且具有四舍五入效果的代码: var num=3.1415926; console.log(num.toFixed(3)); toFixed()函数可以参阅javascript的Number对象的toFixed()方法一章节. 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=11973 更多内容可以参阅:http://www.softwhy.com/javas

javascript 图片淡入淡出效果 实例源代码

? 1 代码说明:把代码粘贴好之后,需要更改html代码中的图片路径,即可执行成功.<br>后面还有对js代码的详细说明,希望大家好好消化,好好理解.<br><br>html源代码: 1 <head> 2 <title>图片切换</title> 3 <script type="text/javascript" src="图片切换.js"></script> 4 <l

产品图片无缝水平滚动效果代码

产品图片无缝水平滚动效果代码:在众多的网站都有这样的效果,那就是产品图片可以不间断的无缝滚动,效果挺美观的,也给静态的页面增加了几分动感,也便利了浏览者查看产品,算是比较好的效果吧,下面就介绍一下如何实现此特效的,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http:

javascript实现的窗口抖动代码实例

javascript实现的窗口抖动代码实例:窗口抖动效果在很多地方都有应用,例如网易的登陆窗口就有这样的效果,当登陆失败的时候就会出现抖动效果,这不但有动感,而且让人感觉新颖,下面是一段这样的代码实例,和大家分享一下.代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <meta name="author" content="http:

点击扩展或缩小文本框效果代码

点击扩展或缩小文本框效果代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /><title>点击扩展或缩小文本框效果代码-蚂蚁部落</title><script type="te

JS组件Bootstrap实现弹出框和提示框效果代码

JS组件Bootstrap实现弹出框和提示框效果代码 作者:懒得安分 字体:[增加 减小] 类型:转载 时间:2015-12-08我要评论 这篇文章主要介绍了JS组件Bootstrap实现弹出框和提示框效果代码,对弹出框和提示框感兴趣的小伙伴们可以参考一下 前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编辑功能,一般常见的主要有两种处理方式:行内编辑和弹出框编 辑.在增加用户体验方面,弹出框和提示框起着重要的作用,如果你的系统有一个友好的弹出提示框,自然能给用户

javascript图片等比例缩放代码

javascript图片等比例缩放代码: 图片的尺寸在初始的状态下往往不能够完美的适应网页的布局,这个时候就需要对图片进行缩放处理,当然不能够是无规则的进行缩放,否则可能出现图片变形现象,下面是一段能够对图片进行等比例缩放的实例代码. 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content=&q

使用setTimeout()实现倒计时效果代码实例

使用setTimeout()实现倒计时效果代码实例:大多数情况下实现倒计时效果是使用setInterval()函数,因为此函数可以每隔指定的实现就执行一次指定函数,而setTimeout()函数只能够执行一次,不过也是可以实现倒计时效果的,下面就通过代码实例介绍一下如何利用setTimeout()函数实现倒计时效果.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8">

jquery实现的随机显示图片效果代码

jquery实现的随机显示图片效果代码:下面介绍一下,点击按钮就可以实现图片的随机切换效果,代码实现非常的简单.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <head> <tit