基于jQuery的倒计时插件代码


Posted in Javascript onMay 07, 2011

剩余时间:1小时:40分:30秒

1 /* 
* 倒计时插件,主要用来限时购买 
* By wayshan 版本1.0 
* 使用方法: 
* $(function(){ 
* $("#ElementId").countdown({ 
* Edate:"2012-12-21 15:14:23" 
* }); 
* }) */ 
;(function($){ 
$.fn.countdown = function(options){ 
if (this.length == 0){ 
return false; 
} 
return this.each(function(){ 
var Default = { 
Sdate:null,//开始时间(格式为“2010-10-10 10:10:10”)可以设置为服务端的时间 
Edate:null,//结束日期(格式为“2010-10-10 10:10:10”) 
callback:function(){ 
return false; 
} 
}, 
_H_Text='小时', 
_M_Text='分', 
_S_Text='秒', 
_lT = null, 
_cT = new Date(), 
_eT = null, 
_elT = null, 
ctime = null, 
etime = null, 
DomId = null, 
_timeout = null, 
_gt = function(){ 
if (_lT == null) { 
_elT = (etime - ctime); 
if (_elT < 0){ 
$('#'+DomId).html("<strong>0</strong>"+_H_Text+":<strong>0</strong>"+ 
_M_Text+":<strong>0</strong>"+_S_Text); 
} 
var _xT =Math.ceil(_elT/(24*60*60*1000)); 
_cT = parseInt(_cT.match(/\s(\d+)\D/)[1] * 3600) 
+ parseInt(_cT.split(":")[1] * 60)+ parseInt(_cT.split(":")[2]); 
_eT = _xT * 24 * 3600 + parseInt(_eT.match(/\s(\d+)\D/)[1] * 3600) 
+ parseInt(_eT.split(":")[1] * 60) + parseInt(_eT.split(":")[2]); 
_lT = _elT/1000; 
} 
if (_elT > 0) { 
if (_lT >= 0) { 
var _H = Math.floor(_lT / 3600); 
var _M = Math.floor((_lT - _H * 3600) / 60); 
var _S = (_lT - _H * 3600) % 60; 
$('#'+DomId).html("<strong>" + _H + "</strong>"+_H_Text+":<strong>" 
+ _M + "</strong>"+_M_Text+":<strong>" + _S + "</strong>"+_S_Text); 
_lT--; 
} else { 
clearInterval(_timeout); 
if(s.callback && $.isFunction(s.callback)){ 
s.callback.call(this); 
} 
} 
} else { 
clearInterval(_timeout); 
if(s.callback && $.isFunction(s.callback)){ 
s.callback.call(this); 
} 
} 
}, 
strDateTime = function(str){ 
//判断日期时间的输入是否正确,类型必须形如为:2011-01-01 01:01:01 
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
var r = str.match(reg); 
if(r==null)return false; 
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4] 
&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); 
} 
var s = $.extend({}, Default, options || {}); 
DomId = this.id; 
if (DomId == 'null'){ 
return; 
} 
_eT = s.Edate; 
if (!strDateTime(_eT)){ 
alert('结束日期格式不正确'); 
return false; 
} 
if (s.Sdate != null){ 
_cT = s.Sdate; 
} 
_cT = _cT.toString(); 
cdate = _cT.replace(/-/g, '/'); 
_eT = _eT.toString(); 
edate = _eT.replace(/-/g, '/'); 
ctime = new Date(cdate); 
etime = new Date(edate); 
_timeout = setInterval(_gt, 1000) 
}); 
} 
})(jQuery);
Javascript 相关文章推荐
$.ajax返回的JSON无法执行success的解决方法
Sep 09 Javascript
使用iframe window的scroll方法控制iframe页面滚动
Mar 05 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
Sep 22 Javascript
JS实现状态栏跑马灯文字效果代码
Oct 24 Javascript
基于Javascript实现倒计时功能
Feb 22 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
JavaScript中数组的各种操作的总结(必看篇)
Feb 13 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
Jun 03 Javascript
详解react-webpack2-热模块替换[HMR]
Aug 03 Javascript
jQuery Layer弹出层传值到父页面的实现代码
Aug 17 jQuery
使用Vue写一个datepicker的示例
Jan 27 Javascript
Axios取消重复请求的方法实例详解
Jun 15 Javascript
基于Jquery的将DropDownlist的选中值赋给label的实现代码
May 06 #Javascript
jQuery 常见操作实现方式和常用函数方法总结
May 06 #Javascript
jQuery1.6 正式版发布并提供下载
May 05 #Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
May 05 #Javascript
jQuery bind事件使用详解
May 05 #Javascript
javascript 拖动表格行实现代码
May 05 #Javascript
小试JQuery的AutoComplete插件
May 04 #Javascript
You might like
php数组中包含中文的排序方法
2014/06/03 PHP
Symfony2针对输入时间进行查询的方法分析
2017/06/28 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
如何编写jquery插件
2017/03/29 jQuery
微信小程序实现九宫格抽奖
2020/04/15 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
Python 检查数组元素是否存在类似PHP isset()方法
2014/10/14 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
python取余运算符知识点详解
2019/06/27 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
汽车装潢店创业计划书范文
2014/02/05 职场文书
税务干部鉴定材料
2014/02/11 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
《苏珊的帽子》教学反思
2014/04/07 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
合作协议书模板
2014/10/10 职场文书
承兑汇票延期证明
2015/06/23 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
MySQL索引失效场景及解决方案
2022/07/23 MySQL