基于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 相关文章推荐
JavaScript 学习笔记(十五)
Jan 28 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
Jan 11 Javascript
JavaScript判断表单为空及获取焦点的方法
Feb 12 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 Javascript
jQuery加载及解析XML文件的方法实例分析
Jan 22 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
Mar 30 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 Javascript
12条写出高质量JS代码的方法
Jan 07 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
Aug 10 Javascript
详解VS Code使用之Vue工程配置format代码格式化
Mar 20 Javascript
vue.js 2.0实现简单分页效果
Jul 29 Javascript
Vue SPA 初次进入加载动画实现代码
Nov 14 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
php header()函数使用说明
2008/07/10 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
Python join()函数原理及使用方法
2020/11/14 Python
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
大学生大二自我鉴定
2013/10/28 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
企业文明单位申报材料
2014/05/16 职场文书
旅游节目策划方案
2014/05/26 职场文书
幼儿发展评估方案
2014/06/11 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
婚前协议书标准版
2014/10/19 职场文书
初中班干部工作总结
2015/08/10 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS