作家
登录

基于jQuery的倒计时插件代码

作者: 来源:www.28hudong.com 2013-03-30 00:53:08 阅读 我要评论

剩余时间: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);

  推荐阅读

  High Performance JavaScript(高性能JavaScript)读书笔记分析

第一章:加载和执行 浏览器的JavaScript的引擎是编译器层的优化; 当浏览器执行JavaScript代码时,不能同时做其他任何事情(单一进程),意味着<script>标签每次出现都霸道地让页面等带脚本的解析和执行(每个文件必>>>详细阅读


本文标题:基于jQuery的倒计时插件代码

地址:http://www.17bianji.com/kaifa2/JS/24595.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)