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 脚本将当地时间转换成其它时区
Mar 19 Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 Javascript
jquery操作 iframe的方法
Dec 03 Javascript
分享我的jquery实现下拉菜单心的
Nov 29 Javascript
js实现图片上传并正常显示
Dec 19 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
Jan 28 Javascript
JS实现列表的响应式排版(推荐)
Sep 01 Javascript
Vue2.0表单校验组件vee-validate的使用详解
May 02 Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
Aug 14 Javascript
javascript json字符串到json对象转义问题
Jan 22 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
May 03 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
第十四节 命名空间 [14]
2006/10/09 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
详谈js模块化规范
2017/07/07 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
365 Tickets英国:全球景点门票
2019/07/06 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
人力资源管理毕业生自荐信
2013/11/21 职场文书
让世界充满爱演讲稿
2014/05/24 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
在Python 中将类对象序列化为JSON
2022/04/06 Python