基于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 相关文章推荐
jquery在IE、FF浏览器的差别详细探讨
Apr 28 Javascript
如何让DIV可编辑、可拖动示例代码
Sep 18 Javascript
js获取页面传来参数的方法
Sep 06 Javascript
javascript文本框内输入文字倒计数的方法
Feb 24 Javascript
jquery判断iPhone、Android设备类型
Sep 14 Javascript
解析js如何获取css样式
Dec 11 Javascript
React学习笔记之列表渲染示例详解
Aug 22 Javascript
vue异步加载高德地图的实现
Jun 19 Javascript
vue中子组件调用兄弟组件方法
Jul 06 Javascript
javascript的this关键字详解
May 20 Javascript
react native 仿微信聊天室实例代码
Sep 17 Javascript
微信小程序可滑动周日历组件使用详解
Oct 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
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
laravel自定义分页效果
2017/07/23 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
Dom操作之兼容技巧分享
2011/09/20 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
继续学习javascript闭包
2015/12/03 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
jQuery实现移动端图片上传预览组件的方法分析
2020/05/01 jQuery
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
Python3数字求和的实例
2019/02/19 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
python代码编写计算器小程序
2020/03/30 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
如何将字串String转换成整数int
2015/02/21 面试题
大学生专业个人学习的自我评价
2013/10/26 职场文书
工厂门卫岗位职责
2013/11/25 职场文书
标准化管理实施方案
2014/02/25 职场文书
高中军训感言800字
2014/03/05 职场文书
《云房子》教学反思
2014/04/20 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers