JavaScript实现的一个倒计时的类

 这篇文章主要介绍了JavaScript实现的一个倒计时的类,本文直接给出demo代码,需要的朋友可以参考下

 
 

近期在做排列五的彩票项目,每一期都有购彩时段,即用户打开这个排列五的页面时,会从服务器传来一个remaintime(离本次彩期结束的剩余时间),然后这个时间在客户端递减呈现给用户看,让用户获得本次彩期的剩余时间。

实现原理挺简单的,在此不在赘述,运行以下代码查看demo:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>index</title>
<style type="text/css">
em{color:#f00;}
</style>
</head>
 
<body>
<div id="remaintime"></div>
<script type="text/javascript">
 
var TheTime = function(){
this.init.apply(this,arguments);
};
 
TheTime.prototype = {
init: function(obj){
var that = this;
obj = that.buildParam(obj);
that.callback = obj.callback;
var container = that.container = document.getElementById(obj.container);
container.innerHTML = '<em></em>小时<em></em>分钟<em></em>秒';
var hourSpace = that.hourSpace = container.getElementsByTagName('em')[0];
var minuteSpace = that.minuteSpace = container.getElementsByTagName('em')[1];
var secondSpace = that.secondSpace = container.getElementsByTagName('em')[2];
if(obj.remaintime==0){
that.resetTime();
return;
}
 
that.hours = Math.floor(obj.remaintime/3600);
that._remainder1 = obj.remaintime % 3600;
that.minutes = Math.floor(that._remainder1/60);
that.seconds = that._remainder1 % 60;
var timer = that.timer = setInterval(function(){
that.renderTime.apply(that);
},1000);
},
buildParam: function(obj){
obj = {
//container为dom节点的id
container: obj.container || 'container',
remaintime: Number(obj.remaintime) || 0,
//倒计时完成后的回调
callback: obj.callback || new Function
};
return obj;
},
resetTime: function(){
var that = this;
that.container.innerHTML = "已经截止";
},
//刷新时间
renderTime: function(){
//debugger;
var that = this;
if(that.seconds>0){
that.seconds--;
}else{
that.seconds = 59;
if(that.minutes>0){
that.minutes--;
}else{
that.minutes = 59;
if(that.hours>0){
that.hours--;
}
}
}
 
//时刻监听
if(that.hours==0 && that.minutes==0 && that.seconds==0){
//执行回调
that._callback();
}
var bitHandle = that.bitHandle;
 
var _hour = bitHandle(that.hours);
var _minute = bitHandle(that.minutes);
var _second = bitHandle(that.seconds);
that.hourSpace.innerHTML = _hour;
that.minuteSpace.innerHTML = _minute;
that.secondSpace.innerHTML = _second;
},
//对于位数的处理,确保返回两位数
bitHandle: function(num){
var str = num.toString();
if(str.length<2){
str = 0 + str;
}
return str;
},
_callback: function(){
var that = this;
clearInterval(that.timer);
that.callback();
}
 
};
 
new TheTime({
//容器id
container: 'remaintime',
//服务器返回的剩余时间,单位为秒
remaintime: 10000,
//倒计时完成时的回调
callback: function(){
document.getElementById('remaintime').innerHTML = '已截止';
}
});
</script>
</body> 

时间: 2024-10-19 06:52:23

JavaScript实现的一个倒计时的类的相关文章

JavaScript实现的一个倒计时的类_javascript技巧

近期在做排列五的彩票项目,每一期都有购彩时段,即用户打开这个排列五的页面时,会从服务器传来一个remaintime(离本次彩期结束的剩余时间),然后这个时间在客户端递减呈现给用户看,让用户获得本次彩期的剩余时间. 实现原理挺简单的,在此不在赘述,运行以下代码查看demo: <!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html;

Javascript无参数和有参数类继承问题解决方法

 这篇文章主要介绍了Javascript无参数和有参数类继承问题解决方法,本文讲解了无参数类继承的问题和有参类继承的问题,并给出了解决方案,需要的朋友可以参考下     说到Javascript的类继承,就必然离不开原型链,但只通过原型链实现的继承有着不少缺陷. 无参数类继承的问题 先看一段示例代码,实现B继承于A: 代码如下: function A() { } A.prototype.a1 = function() { };   function B() { } B.prototype = n

使用 ES6 编写更好的 JavaScript Part II:深入探究 [类]

本文讲的是使用 ES6 编写更好的 JavaScript Part II:深入探究 [类], 在本文的开始,我们要说明一件事: 从本质上说,ES6 的 classes 主要是给创建老式构造函数提供了一种更加方便的语法,并不是什么新魔法 -- Axel Rauschmayer,Exploring ES6 作者 从功能上来讲,class 声明就是一个语法糖,它只是比我们之前一直使用的基于原型的行为委托功能更强大一点.本文将从新语法与原型的关系入手,仔细研究 ES2015 的 class 关键字.文中

javascript 支持页码格式的分页类_javascript技巧

Php 构造函数construct的前下划线是 PHP 读取文件内容代码(txt,js等) PHP 用数组降低程序的时间复杂度 PHP 柱状图实现代码 Ajax+PHP边学边练 之五 图片处理 PHPMyadmin 配置文件详解(配置) 又一个php 分页类实现代码 php 无限分类的树类代码 Asp.net 文本框全选的实现 php zip文件解压类代码 li>各种男女围巾围法图文 photoshop 鼠绘忧郁的少女头像 Photoshop 一只可爱的卡通小蜜蜂 Photoshop 调出美女质

JavaScript实现基于Cookie的存储类实例_javascript技巧

本文实例讲述了JavaScript实现基于Cookie的存储类.分享给大家供大家参考.具体分析如下: 通过这个JS类,你可以象使用session一样使用cookie,非常简单了! /* * CookieStorage.js * 本类实现像localStorage和sessionStorage一样的存储API * 不同的是,它是基于HTTP Cookies实现的. */ function CookieStorage(maxage, path) { // 两个参数分别代表储存有效期和作用域 // 获

Whatever:hover 无需javascript让IE支持丰富伪类_javascript技巧

这很酷,因为这使你可以仅通过 css来对表格行(<tr>)应用鼠标滑过事件(mouseover)时的特殊效果.然而,万恶的IE,对 :hover伪类顶多只提供了有限的支持,具体支持的程度要取决于你的IE浏览器的具体版本. Whatever:hover 是一个小小的脚本,它可以迅速.自动地为IE6,IE7,IE8添加标准的 :hover.:active 和:focus 伪类支持.第三版引入了 ajax 支持,意味着通过 javascript动态添加到文档中的任意html元素也同样可以在IE中响应

javascript 面向对象编程 function也是类_js面向对象

但javascript中并没有类概念,所谓的类也是模拟而来,通过函数加闭包模拟出类成员及私有成员(关于闭包可以参见跨越边界: 闭包).这里我们将用比较平实的方式来了解一下javascript中的"类",避开一些生硬的原理.       既然是用function来模拟类,所以编写代码创建类的关键字还是function.我们创建一个座标点类. function Point() { this.X = 0; this.Y = 0; };   var zeroPoint = new Point(

Javascript实现的Map集合工具类完整实例_javascript技巧

本文实例讲述了Javascript实现的Map集合工具类.分享给大家供大家参考.具体如下: var Map = function(){ // 构造entry实体 var Entry = function(key, value){ this.key = key; this.value = value; } this.entries = new Array(); // 构造put方法在数组中放入一个Entry this.put = function(key, value){ // 数组中已存在就不放

Javascript实现的简单右键菜单类_javascript技巧

本文实例讲述了Javascript实现的简单右键菜单类.分享给大家供大家参考.具体如下: 这是自己写的一个右键菜单类,屏蔽掉了IE固有的右键菜单,一共有四个参数:第一个是出发显示右键菜单的div的id 第二个是右键菜单这个层的id,根据这个id去创建一个新的层,menuList是菜单项的列表,对应了点击一个菜单项后触发的函数,classList是菜单的class名称,以及菜单项对应的class名称,包含了鼠标滑过时的class. 运行效果截图如下: 在线演示地址如下: http://demo.j