简易倒计时,非常简单。
这里主要用到了setInterval()和clearInterval()方法;
定义:
setInterval()方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInteral()方法会不停地调用函数,直到clearInterval()被调用或窗口被关闭。由setInterval()返回的ID值可用作clearInterval方法的参数。
setInterval()方法主要有以下两个参数:
参数 | 描述 |
code | 必须。要调用的函数或要执行的代码串 |
millisec | 必须。周期性执行或调用code之间的时间间隔,以毫秒计。 |
思路:
1天 = 24小时 = 24 * 60分 = 24 * 60 * 60秒;
1小时 = 60 分 = 60 * 60秒;
1分 = 60秒;
day = 秒数 / 24 * 60 * 60;
hour = 秒数 / (60 * 60) - (day * 24);
minute = 秒数 / 60 - (day * 24 * 60) - hour * 60;
second = 秒数 - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
下面贴上代码:
;(function($) {
var TimeCountDown = function() {};
TimeCountDown.prototype = {
init: function() {
var intDiff = 1000;
this._setInterval(intDiff);
},
_setInterval: function(intDiff) {
var interval = setInterval(function() {
var day = 0,
hour = 0,
minute = 0,
second = 0;
if(intDiff > 0) {
day = Math.floor(intDiff / (24 * 60 * 60));
hour = Math.floor(intDiff / (60 * 60) - (day * 24));
minute = Math.floor(intDiff / 60 - (day * 24 * 60) - (hour * 60));
second = Math.floor(intDiff - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60));
}
if (hour <= 9) hour = '0' + hour;
if (minute <= 9) minute = '0' + minute;
if (second <= 9) second = '0' + second;
console.log(day + '天'+ hour +'时'+ minute +'分'+ second +'秒');
if (intDiff == '0') clearInterval(interval);
intDiff--;
}, 1000)
}
};
return new TimeCountDown().init();
})(jQuery)
在实际项目中可能会有这种需求在不同的时间间隔内倒计时跨度不同。
这里可以把时间间隔,根据不同的需求,通过变量传递进去,就不需要写多个setInterval()方法了。