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 相关文章推荐
JavaScript 面向对象的 私有成员和公开成员
May 13 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
Sep 15 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
Jun 20 Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 Javascript
文件编码导致jquery失效的解决方法
Jun 26 Javascript
DOM基础教程之使用DOM + Css
Jan 20 Javascript
jquery+json实现数据二级联动的方法
Nov 28 Javascript
根据Bootstrap Paginator改写的js分页插件
Dec 25 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
Jan 19 Javascript
nvm、nrm、npm 安装和使用详解(小结)
Jan 17 Javascript
Vue.js路由实现选项卡简单实例
Jul 24 Javascript
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
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
杏林同学录(三)
2006/10/09 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
ES6中异步对象Promise用法详解
2019/07/31 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
用Python编程实现语音控制电脑
2014/04/01 Python
python访问抓取网页常用命令总结
2017/04/11 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
Python Pillow Image Invert
2019/01/22 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
敬老院标语
2014/06/27 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
励志演讲稿800字
2014/08/21 职场文书
2014教师党员个人自我评议
2014/09/20 职场文书
学校运动会加油词
2015/07/18 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS