【JS】简易倒计时

简易倒计时,非常简单。

这里主要用到了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()方法了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值