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 相关文章推荐
jqueyr判断checkbox组的选中(示例代码)
Nov 08 Javascript
使用jQuery.wechat构建微信WEB应用
Oct 09 Javascript
javaScript的函数对象的声明详解
Feb 06 Javascript
jQuery实现冻结表头的方法
Mar 09 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
Jan 14 Javascript
深入理解JavaScript中Ajax
Aug 02 Javascript
JSON与XML的区别对比及案例应用
Nov 11 Javascript
Bootstrap基本插件学习笔记之按钮(21)
Dec 08 Javascript
简易Vue评论框架的实现(父组件的实现)
Jan 08 Javascript
微信小程序如何实现radio单选框单击打勾和取消
Jan 21 Javascript
浅谈React中组件逻辑复用的那些事儿
May 21 Javascript
Vue单页面应用中实现Markdown渲染
Feb 14 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
php上传、管理照片示例
2006/10/09 PHP
PHP实现异步调用方法研究与分享
2011/10/27 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
对angular4子路由&amp;辅助路由详解
2018/10/09 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
Python中的字符串查找操作方法总结
2016/06/27 Python
TensorFlow变量管理详解
2018/03/10 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
python cumsum函数的具体使用
2019/07/29 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
电大自我鉴定
2013/10/27 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
如何写好活动总结
2019/06/21 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS
go语言中http超时引发的事故解决
2021/06/02 Golang
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
基于Python实现将列表数据生成折线图
2022/03/23 Python
mysql insert 存在即不插入语法说明
2022/03/25 MySQL