var Global={}; Global.namespace = function (str) { var arr=str.split(‘.‘), o=Global; for(var i= 0,len=arr.length;i<len;i++){ o[arr[i]]=o[arr[i]] || {}; o=o[arr[i]]; } }; /* * CountDown module * usage: new Global.Countdown() and use init() ,send params to init,like * { * day:10, * hour:10, * minute:10, * second:10 * } * Author :wz * 2015-12-20 * * */ Global.namespace(‘Countdown‘); (function(){ Global.Countdown.end=0; var day=document.getElementById(‘day‘); var hour=document.getElementById(‘hour‘); var minute=document.getElementById(‘minute‘); var second=document.getElementById(‘second‘); Global.Countdown=function(obj){ Global.Countdown.end=new Date().getTime()+(obj.day*24*60*60+obj.hour*60*60+obj.minute*60+obj.second)*1000; }; Global.Countdown.prototype = { init:function(){ var now=new Date().getTime(); if(Global.Countdown.end-now > 0){ setTimeout(Global.Countdown.prototype.init,1000); var obj= Global.Countdown.prototype.timeformat(Global.Countdown.end-now); day.innerHTML=obj.day; hour.innerHTML=obj.hour; minute.innerHTML=obj.minute; second.innerHTML=obj.second; }else{ second.innerHTML=‘00‘; alert(‘time out‘) } }, timeformat:function(t){ var days = Math.floor(t/(1000*60*60*24)); var hour=this.check(Math.floor((t%(1000*60*60*24))/(1000*60*60))); var minute=this.check(Math.floor((t%(1000*60*60))/(1000*60))); var second=this.check(Math.round((t%(1000*60))/1000)); return { ‘day‘:days, ‘hour‘:hour, ‘minute‘:minute, ‘second‘:second } }, check:function(str){ if(str<10) return ‘0‘+str; return str; } }; }()); new Global.Countdown({ ‘day‘:0, ‘hour‘:0, ‘minute‘:0, ‘second‘:5 }).init();
原文:http://www.cnblogs.com/wz0107/p/5065158.html