实现限时秒杀案例
1.在淘宝网中,商家为了促销经常搞一些活动,例如限时秒杀是常见的一种活动,来增加消费者购买商品。
2.实现限时秒杀案例,具体代码如下所示:
HTML
- <div class="box">
- <div style="width:190px">距离5/20号限时秒杀还有</div>
- <div id="day"></div>
- <div id="hour"></div>
- <div id="minute"></div>
- <div id="second"></div>
- </div>
在上面代码中,id为day、hour、minute、second分别表示剩余的天数、小时、分钟、秒数。
CSS
- *{
- margin: 0;
- padding: 0;
- }
- .box {
- width: 702px;
- height: 378px;
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: center;
- text-align: center;
- border: 1px solid #000;
- }
- .box div {
- display: flex;
- color: royalblue;
- width: 50px;
- height: 50px;
- border: 1px solid #ccc;
- align-items: center;
- justify-content: center;
- }
在上面代码中,使用弹性布局display:flex,用于盒子模型提供很大的一个灵活性。
flex-direction属性表示控制主轴的方向,row表示水平方向。
justify-content属性表示项目在主轴上的对齐方式,center表示中间。
align-items属性表示项目在交叉轴上对齐方式,center表示中间。
JavaScript
- //设置秒杀结束时间
- var endTime = new Date('2021', '4', '20'); //指定日期
- var endSec = endTime.getTime(); //指定日期的毫秒数
- // 声明变量保存剩余的时间
- var d = h = m = s = 0;
- // 设置定时器,实现限时秒杀效果
- var id = setInterval(show, 1000);
- function show() {
- var nowtime = new Date(); // 获取当前时间
- // 获取时间差,单位秒
- var gain = parseInt((endSec – nowtime.getTime()) / 1000);
- // 判断秒杀时间是否到期
- if (gain > 0) {
- // 计算剩余天数
- d = parseInt(gain / (60*60*24));
- // 计算剩余小时
- h = parseInt((gain / (60*60)) % 24);
- // 计算剩余分钟
- m = parseInt((gain / 60) % 60);
- // 计算剩余秒
- s = parseInt(gain % 60);
- } else {
- clearInterval(id); // 清除定时器
- d = h = m = s = '00';
- }
- // 将剩余的天、小时、分钟、秒显示在网页中
- document.getElementById('day').innerHTML = d + '天';
- document.getElementById('hour').innerHTML = h + '时';
- document.getElementById('minute').innerHTML = m + '分';
- document.getElementById('second').innerHTML = s + '秒';
- }
在上面代码中,首先是创建秒杀结束时间,利用Date对象的getTime()方法分别获取结束秒杀的时间和当前时间的毫秒数。判断秒杀时间是否到期,如果没到期,计算剩余天数、小时、分钟、秒数。如果到期清除计时器。
使用document.getElementById()方法根据指定的Id对象插入相应的内容。