基于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 相关文章推荐
删除重复数据的算法
Nov 23 Javascript
jQuery弹出层插件简化版代码下载
Oct 16 Javascript
初试jQuery EasyUI 使用介绍
Apr 01 Javascript
一些有用的JavaScript和jQuery的片段分享
Aug 23 Javascript
javascript创建和存储cookie示例
Jan 07 Javascript
node.js中的fs.chownSync方法使用说明
Dec 16 Javascript
input点击后placeholder中的提示消息消失
Jan 15 Javascript
vue获取input输入值的问题解决办法
Oct 17 Javascript
vue 运用mock数据的示例代码
Nov 07 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
Nov 15 Javascript
详解plotly.js 绘图库入门使用教程
Feb 23 Javascript
JavaScript调用模式与this关键字绑定的关系
Apr 21 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全排列递归算法代码
2012/10/09 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
PHP中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
浅析php单例模式
2014/11/25 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
javascript动态加载二
2012/08/22 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
2014/02/04 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
Python实现的Kmeans++算法实例
2014/04/26 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
年底个人总结范文
2015/03/10 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
会议营销主持词
2015/07/03 职场文书
高三毕业感言
2015/07/30 职场文书
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android