JS基于面向对象实现的多个倒计时器功能示例


Posted in Javascript onFebruary 28, 2017

本文实例讲述了JS基于面向对象实现的多个倒计时器功能。分享给大家供大家参考,具体如下:

运行效果图如下:

JS基于面向对象实现的多个倒计时器功能示例

实现代码如下:

代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>JavaScript测试文件</title>
 </head>
 <body>
  <div><span id="hour0">0</span>小时</div>
  <div><span id="minute0">0</span>分</div>
  <div><span id="seconds0">10</span>秒</div>
  <br/>
  <div><span id="hour1">1</span>小时</div>
  <div><span id="minute1">31</span>分</div>
  <div><span id="seconds1">31</span>秒</div>
  <br/>
  <div><span id="hour2">2</span>小时</div>
  <div><span id="minute2">32</span>分</div>
  <div><span id="seconds2">32</span>秒</div>
  <br/>
  <div><span id="hour3">3</span>小时</div>
  <div><span id="minute3">33</span>分</div>
  <div><span id="seconds3">33</span>秒</div>
  <br/>
  <div><span id="hour4">4</span>小时</div>
  <div><span id="minute4">34</span>分</div>
  <div><span id="seconds4">34</span>秒</div>
  <br/>
 </body>
</html>
<script type="text/javascript">
//名山计时器:
function msTimeCount(){
 this._hour=0;   //“小时”数
 this._minute=0;   //“分”数
 this._seconds=0;  //“秒”数
 //
 this._hourHtmlObj={};//“小时”html对象
 this._minuteHtmlObj={};//“分”html对象
 this._secondsHtmlObj={};//“秒”html对象
 //
 this._totalSeconds=0;//总秒数
};
msTimeCount.prototype={
 //1.获取对象
 $:function(ID){
  return document.getElementById(ID);
 },
 //2.初始化:
 /*
  * arrTime:  传入时间数组,格式为[1,30,30],代表 1小时30分30秒;
  * arrHtmlObj: 更新时间数据的Html对象数组,格式为["hour","minute","seconds"];
 */
 init:function(arrTime,arrHtmlObj){
  var _this=this;
  _this._hour=parseInt(arrTime[0]);
  _this._minute=parseInt(arrTime[1]);
  _this._seconds=parseInt(arrTime[2]);
  _this._hourHtmlObj=_this.$(arrHtmlObj[0]);
  _this._minuteHtmlObj=_this.$(arrHtmlObj[1]);
  _this._secondsHtmlObj=_this.$(arrHtmlObj[2]);
  _this._totalSeconds=parseInt(_this._hour*60*60+_this._minute*60+_this._seconds);
  //开始计时:
  _this.timeCount();
 },
 //3.计时器:
 timeCount:function(){
  var _this=this;
  var tmpTimeCount=setInterval(
   function(){
    _this._totalSeconds--;
    //alert(_this._totalSeconds);
    _this.refreshTime();
    if(_this._totalSeconds<1){
     clearInterval(tmpTimeCount);
     return;
    }
   }
   ,1000);
 },
 //4.刷新页面时间:
 refreshTime:function(){
  var _this=this;
  if(_this._totalSeconds>0){
   _this._hour=parseInt(_this._totalSeconds/3600);
   _this._minute=parseInt((_this._totalSeconds-_this._hour*3600)/60);
   _this._seconds=_this._totalSeconds-_this._hour*3600-_this._minute*60;
  }else{
   _this._hour=_this._minute=_this._seconds=0;
  }
  _this._hourHtmlObj.innerHTML=_this._hour;
  _this._minuteHtmlObj.innerHTML=_this._minute;
  _this._secondsHtmlObj.innerHTML=_this._seconds;
 }
}
var timeCount0=new msTimeCount();
timeCount0.init([0,0,10],["hour0","minute0","seconds0"]);
var timeCount1=new msTimeCount();
timeCount1.init([1,31,31],["hour1","minute1","seconds1"]);
var timeCount2=new msTimeCount();
timeCount2.init([2,32,32],["hour2","minute2","seconds2"]);
var timeCount3=new msTimeCount();
timeCount3.init([3,33,33],["hour3","minute3","seconds3"]);
var timeCount4=new msTimeCount();
timeCount4.init([4,34,34],["hour4","minute4","seconds4"]);
</script>
Javascript 相关文章推荐
由prototype_1.3.1进入javascript殿堂-类的初探
Nov 06 Javascript
xml 封装与解析(javascript和C#中)
Jul 26 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
Dec 15 Javascript
javaScript使用EL表达式的几种方式
May 27 Javascript
jQuery中hide()方法用法实例
Dec 24 Javascript
详解js中构造流程图的核心技术JsPlumb
Dec 08 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
Mar 21 Javascript
JavaScript仿微信打飞机游戏
Jul 05 Javascript
JavaScript多态与封装实例分析
Jul 27 Javascript
vue(2.x,3.0)配置跨域代理
Nov 27 Javascript
微信小程序修改数组长度的问题的解决
Dec 17 Javascript
Paypal支付不完全指北
Jun 04 Javascript
js中删除数组中的某一元素实例(无下标时)
Feb 28 #Javascript
jQuery图片切换动画效果
Feb 28 #Javascript
jQuery 判断元素整理汇总
Feb 28 #Javascript
jQuery倒计时代码(超简单)
Feb 27 #Javascript
js实现图片左右滚动效果
Feb 27 #Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 #Javascript
原生js实现旋转木马轮播图效果
Feb 27 #Javascript
You might like
随时给自己贴的图片加文字的php水印
2007/03/16 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
PHP备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
python中有关时间日期格式转换问题
2019/12/25 Python
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
六一儿童节新闻稿
2015/07/17 职场文书