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 相关文章推荐
WordPress JQuery处理沙发头像
Jun 22 Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
Jun 19 Javascript
JS实现下拉框的动态添加(附效果)
Apr 03 Javascript
javascript获取checkbox复选框获取选中的选项
Aug 12 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
Oct 20 Javascript
JavaScript初学者必看“new”
Jun 12 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
vue.js前后端数据交互之提交数据操作详解
Apr 24 Javascript
angular ng-model 无法获取值的处理方法
Oct 02 Javascript
JS实现li标签的删除
Apr 12 Javascript
JS 数组和对象的深拷贝操作示例
Jun 06 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下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
keep-alive不能缓存多层级路由菜单问题解决
2020/03/10 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
centos系统升级python 2.7.3
2014/07/03 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
机关党员公开承诺书
2014/08/30 职场文书
个人委托书范本汇总
2014/10/01 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
Redis如何一键部署脚本
2021/04/12 Redis