代幣如下:
/**
* カウントダウン
*
* @author WadeYu
* @date 2012-04-20 17:40
* @copyrightboyaa.com
*/
var TimeCountDown = function( initTime ){
var day = 0;
var 時間 = 0;
var 分 = 0;
var 秒 = 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' 数値) : 数値;
};
var calc = function(){
showCallback.call(self, [fixZero(日), fixZero(時), fixZero(分), fixZero(秒)]);
if (日 === 0 && 時 === 0 && 分 === 0 && 秒 === 0){
self.stop();
} else {
if (時間 === 0 && 日 > 0){
時間 = 24;
日--;
}
if (分 === 0 && 時間 > 0){
分 = 60;
時間--;
}
if (秒 === 0 && 分 > 0){
秒 = 59;
分--;
} else {
2 番目--;
}
timerId = window.setTimeout(function(){
calc();
}, 1000);
}
};
var showCallback = function(){
alert('コールバック関数の表示を設定してください!');
};
var init = function(){
fixInitTime();
if ( initTime > 0 ){
day = Math.floor( (initTime / (24*60*60)) );
initTime -= 日 * 24*60*60;
時間 = Math.floor( initTime / (60*60) );
initTime -= 時間 * 60*60;
分 = Math.floor( initTime / 60 );
秒 = initTime - 分 * 60;
}
};
this.start = function(){
calc();
};
this.stop = function(){
timerId && window.clearTimeout(timerId);
};
this.setShowCallback = function(fn){
typeof(fn) === '関数' ? (showCallback = fn) : '';
};
init();
};
例: