[JavaScript-BOM] 倒计时效果

setInterval()定时器

语法
window.setInterval(回调函数,[间隔的毫秒数]);

重复调用一个函数,每隔这个间隔时间,就调用一次

注意
  1. window可以省略
  2. 书写方式一,直接写函数 setInterval( function() {} , 2000);
  3. 书写方式二,写函数名 setInterval( fn , 2000); 需要定义好的函数 function fn () {}
  4. 书写方式三,写字符串 ‘函数名()’ setInterval( ‘fn()’ , 2000); 同样需要定义好的函数 不推荐
  5. 毫秒数可以省略,默认是0
代码
<style>        
  	div {            
  		width: 200px;
   		margin: 100px auto;        
  	}
        span {            
          	display: inline-block;            
          	width: 40px;            
          	height: 40px;            
          	background-color: #333;            
          	color: #fff;            
          	font-size: 20px;            
          	font-weight: 700;            
          	line-height: 40px;            
          	text-align: center;        
         }    
</style>
<body>    
	<div>        
		<span class="hour">1</span>        
		<span class="minute">2</span>        
		<span class="second">3</span>    
	</div>    
	<script>        
		// 获取元素        
		var hour = document.querySelector('.hour');        
		var minute = document.querySelector('.minute');        
		var second = document.querySelector('.second');        
		// 获得当前设定时间的总毫秒数        
		var inputTime = +new Date('2020-2-14 18:00:00');        
		// 定时器        
		countDown();  //先调用一次是为了让页面一刷新就有时间显示        
		setInterval(countDown, 1000);  //这里是刷新页面一秒后才会执行函数        
		// 创建时间函数        
		function countDown() {
			// 获得当前时间的总毫秒数            
			var nowTime = +new Date();
			// 剩余时间数            
			var times = (inputTime - nowTime) / 1000;
			// 剩余小时            
			var h = parseInt(times / 60 / 60 % 24);            
			h = h < 10 ? '0' + h : h;
			// 得到的时间赋值给 hour元素的内容,显示到页面上            
			hour.innerHTML = h;            
			// 剩余分钟
			var m = parseInt(times / 60 % 60);            
			m = m < 10 ? '0' + m : m;            
			minute.innerHTML = m;            
			// 剩余秒
			var s = parseInt(times % 60);  // 这里不用parseInt()转换,显示精确到小数点后两位            
			s = s < 10 ? '0' + s : s;            
			second.innerHTML = s;        
		}    
	</script>
</body>

倒计时
呃。。参考小米首页闪购倒计时。。还有,米10真好看

忽然想到,如果时间到了就应该停止在 00:00:00,要不然会变成下面这样
在这里插入图片描述
于是乎,我把时间函数的代码做了以下修改,这样就能停住了,nice!

function countDown() {            
	var nowTime = +new Date();            
	var times = (inputTime - nowTime) / 1000;            
	if (times <= 0) {                
		h = 0;                
		m = 0;                
		s = 0;            
	} else {                
		h = parseInt(times / 60 / 60 % 24);                
		m = parseInt(times / 60 % 60);                
		s = parseInt(times % 60);            
	}            
	h = h < 10 ? '0' + h : h;            
	m = m < 10 ? '0' + m : m;            
	s = s < 10 ? '0' + s : s;            
	hour.innerHTML = h;            
	minute.innerHTML = m;            
	second.innerHTML = s;        
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值