基于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 两个窗体之间传值实现代码
Sep 25 Javascript
jQuery 入门级学习笔记及源码
Jan 22 Javascript
屏蔽F1~F12的快捷键的js函数
May 06 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
Oct 14 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
Sep 17 Javascript
JS实现左右拖动改变内容显示区域大小的方法
Oct 13 Javascript
jQuery判断checkbox选中状态
May 12 Javascript
两种js监听滚轮事件的实现方法
May 13 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
Aug 29 Javascript
JavaScript字符串检索字符的方法
Jun 23 Javascript
vue与原生app的对接交互的方法(混合开发)
Nov 28 Javascript
基于ajax实现上传图片代码示例解析
Dec 03 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/07/05 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
php+mysql数据库查询实例
2015/01/21 PHP
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
Opacity.js
2007/01/22 Javascript
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
python实现大量图片重命名
2020/03/23 Python
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
Ruby如何进行文件操作
2014/07/17 面试题
大学生自荐信
2013/12/11 职场文书
大四本科生的自我评价
2013/12/30 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
2015年大学生工作总结
2015/04/21 职场文书
2016年党建工作简报
2015/11/26 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript