基于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 相关文章推荐
Valerio 发布了 Mootools
Sep 23 Javascript
Javascript学习笔记8 用JSON做原型
Jan 11 Javascript
使用JavaScript switch case 另类写法
Mar 14 Javascript
也说JavaScript中String类的replace函数
Sep 22 Javascript
js分解url参数(面向对象-极简主义法应用)
Aug 09 Javascript
iframe 上下滚动条如何默认在下方实现原理
Dec 10 Javascript
简介JavaScript中valueOf()方法的使用
Jun 05 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
Dec 07 Javascript
微信小程序 九宫格实例代码
Jan 21 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 Javascript
checkbox:click事件触发span元素内容改变的方法
Sep 11 Javascript
解决antd Form 表单校验方法无响应的问题
Oct 27 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
php扩展开发入门demo示例
2019/09/23 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
Python Django搭建网站流程图解
2020/06/13 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
Python调用Redis的示例代码
2020/11/24 Python
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
申论倡议书范文
2014/05/13 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
租房协议书范例
2014/10/14 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
统计员岗位职责范本
2015/04/14 职场文书
公积金具结保证书
2015/05/11 职场文书
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android