问题 如何写一个购物时的倒计时秒杀小案例
有的时候我们可以看到京东呀,淘宝呀之类的会出现购物活动倒计时秒杀的小页面,那么这个小块是怎么完成的呢?
解决
根据正常的逻辑,看到倒计时出现时,可以发现她是一秒一秒的减少的,那么就需要用到Date对象以及setInterval方法,效果如下图所示
html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>倒计时</title>
</head>
<body>
<div class="content">
<div class="top">秒杀</div>
<div class="bottom">
<span class="hour">时</span>
<span class="min">分</span>
<span class="second">秒</span>
</div>
</div>
</body>
</html>
css代码
.content {
width: 260px;
height: 260px;
display: flex;
flex-direction: column;
justify-content: space-between;
background-color: red;
border: 1px solid red;
text-align: center;
margin: 100px auto;
}
.top {
width: 260px;
height: 200px;
line-height: 200px;
text-align: center;
align-items: center;
color: #fff;
font-size: 24px;
font-weight: 700;
}
.hour,.min,.second {
display: inline-block;
width: 30px;
height: 30px;
background-color: black;
color: #fff;
text-align: center;
line-height: 30px;
}
js代码
<script>
var hour=document.querySelector('.hour');
var min=document.querySelector('.min');
var second=document.querySelector('.second');
var inputTime = +new Date('2020-8-11 24:00:00'); //获取用户输入的时间总的毫秒数
countDown();//先调用一次这个函数,防止刷新页面出现空白
setInterval(countDown,1000);
function countDown(time){
var nowTime = +new Date();//获取当前时间总的毫秒数
var times = (inputTime - nowTime) / 1000;//获得剩余总时间毫秒数
// var day=parseInt(times /60 /60 /24); //获得天数
// day= day <10? '0'+day : day;
var hours=parseInt(times / 60 / 60 % 24); //获取小时
hours=hours<10? '0'+hours:hours;
hour.innerHTML=hours;
var mins=parseInt(times / 60 % 60); //获得分钟数
mins=mins<10? '0'+mins: mins;
min.innerHTML=mins;
var seconds=parseInt(times%60); //获得秒数
seconds=seconds<10? '0'+ seconds:seconds;
second.innerHTML=seconds
//return day+'天'+hour+'时'+min+'分'+second+'秒';
}
</script>
- 本文作者: étoile
- 版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!