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 相关文章推荐
关于COOKIE个数与大小的问题
Jan 17 Javascript
javascript 内存回收机制理解
Jan 17 Javascript
JavaScript String.replace函数参数实例说明
Jun 06 Javascript
jQuery选择器之基本选择器与层次选择器
Mar 03 Javascript
Windows系统下Node.js的简单入门教程
Jun 23 Javascript
js 求时间差的实现代码
Apr 26 Javascript
jQuery实现的导航下拉菜单效果示例
Sep 05 Javascript
canvas绘制的直线动画
Jan 23 Javascript
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
vue插件实现v-model功能
Sep 10 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
使用Vue实现一个树组件的示例
Nov 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
使用Composer安装Yii框架的方法
2016/03/15 PHP
详解PHP PDO简单教程
2019/05/28 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
Javascript图像处理思路及实现代码
2012/12/25 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
python中bytes和str类型的区别
2019/10/21 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
安装多个版本的TensorFlow的方法步骤
2020/04/21 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
会计毕业生自我鉴定
2013/11/04 职场文书
业绩考核岗位职责
2014/02/01 职场文书
党支部审查意见
2015/06/02 职场文书
茶花女读书笔记
2015/06/29 职场文书
小学安全教育主题班会
2015/08/12 职场文书
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
2022年四月新番
2022/03/15 日漫
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers