基于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 相关文章推荐
List Information About the Binary Files Used by an Application
Jun 11 Javascript
Javascript 继承机制实例
Aug 12 Javascript
Javascript学习笔记 delete运算符
Sep 13 Javascript
javascript获取web应用根目录的方法
Feb 12 Javascript
jquery中trigger()无法触发hover事件的解决方法
May 07 Javascript
JavaScript中数据结构与算法(四):串(BF)
Jun 19 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
Oct 08 Javascript
关于Vue.js一些问题和思考学习笔记(2)
Dec 02 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
Jan 21 Javascript
vue input输入框关键字筛选检索列表数据展示
Oct 26 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
Nov 05 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实现的生成静态HTML速度快类库
2007/03/31 PHP
PHP中函数内引用全局变量的方法
2008/10/20 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
Python学习思维导图(必看篇)
2017/06/26 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
python 不同方式读取文件速度不同的实例
2018/11/09 Python
python重要函数eval多种用法解析
2020/01/14 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
玲玲的画教学反思
2014/02/04 职场文书
运动员口号
2014/06/09 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
高三物理教学反思
2016/02/20 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
MySQL 逻辑备份 into outfile
2022/05/15 MySQL
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS