Posted in Javascript onJune 07, 2012
代码如下:
/** * 倒计时 * * @author WadeYu * @date 2012-04-20 17:40 * @copyright boyaa.com */ var TimeCountDown = function( initTime ){ var day = 0; var hour = 0; var minute = 0; var second = 0; var timerId = 0; var self = this; var fixInitTime = function(){ initTime = parseInt(initTime); if ( isNaN(initTime) || initTime < 0 ){ initTime = 0; } }; var fixZero = function(num){ return num < 10 ? ('0'+num) : num; }; var calc = function(){ showCallback.call(self, [fixZero(day), fixZero(hour), fixZero(minute), fixZero(second)]); if ( day === 0 && hour === 0 && minute === 0 && second === 0){ self.stop(); } else { if (hour === 0 && day > 0){ hour = 24; day--; } if (minute === 0 && hour > 0){ minute = 60; hour--; } if (second === 0 && minute > 0){ second = 59; minute--; } else { second--; } timerId = window.setTimeout(function(){ calc(); }, 1000); } }; var showCallback = function(){ alert('Please set show callback functions!'); }; var init = function(){ fixInitTime(); if ( initTime > 0 ){ day = Math.floor( (initTime / (24*60*60)) ); initTime -= day * 24*60*60; hour = Math.floor( initTime / (60*60) ); initTime -= hour * 60*60; minute = Math.floor( initTime / 60 ); second = initTime - minute * 60; } }; this.start = function(){ calc(); }; this.stop = function(){ timerId && window.clearTimeout(timerId); }; this.setShowCallback = function(fn){ typeof(fn) === 'function' ? (showCallback = fn) : ''; }; init(); };
示例如下:
<body> <div id="timeCon"></div> <script type="text/javascript"> var timeCountDown = new TimeCountDown(3 * 24 * 60 * 60); timeCountDown.setShowCallback(function( obj ){ // [天, 小时, 分, 秒] document.getElementById('timeCon').innerHTML = obj[0] + ":" + obj[1] + ":" + obj[2] + ':' + obj[3]; }); timeCountDown.start(); </script> </body>
javascript倒计时功能实现代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@