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 相关文章推荐
JS控件autocomplete 0.11演示及下载 1月5日已更新
Jan 09 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
May 13 Javascript
jquery获取及设置outerhtml的方法
Mar 09 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
Aug 12 Javascript
原生javascript 学习之js变量全面了解
Jul 14 Javascript
Javascript 一些需要注意的细节(必看篇)
Jul 08 Javascript
js中getBoundingClientRect的作用及兼容方案详解
Feb 01 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
Apr 01 Javascript
Vue登录注册并保持登录状态的方法
Aug 17 Javascript
微信小程序 JS动态修改样式的实现方法
Dec 16 Javascript
Vue数字输入框组件的使用方法
Oct 19 Javascript
JS PHP字符串截取函数实现原理解析
Aug 29 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通过ajax实现双击table修改内容
2014/04/28 PHP
CI框架的安全性分析
2016/05/18 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
动态表格Table类的实现
2009/08/26 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
js中function()使用方法
2013/12/24 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
python socket 聊天室实例代码详解
2019/11/14 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
Prototype如何更新局部页面
2013/03/03 面试题
高中毕业自我鉴定
2013/12/22 职场文书
社区包粽子活动方案
2014/01/21 职场文书
运动员口号
2014/06/09 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
英文自荐信范文
2015/03/25 职场文书