用JS怎样写京东秒杀的效果,设计思路和方法是什么
Admin 2022-06-18 群英技术资讯 907 次浏览
这篇文章给大家分享的是用JS怎样写京东秒杀的效果,设计思路和方法是什么。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。本文实例为大家分享了JavaScript实现京东秒杀效果的具体代码,供大家参考,具体内容如下

首先先利用html和css搭出架子:
* {
margin: 0;
padding: 0;
}
.box {
width: 190px;
height: 270px;
color: #fff;
text-align: center;
margin: 100px auto;
background-color: #d00;
padding-top: 40px;
box-sizing: border-box;
}
.box>h3 {
font-size: 26px;
}
.box>p:nth-of-type(1) {
color: rgba(255, 255, 255, .5);
margin-top: 5px;
}
.box>i {
display: inline-block;
margin-top: 5px;
margin-bottom: 5px;
font-size: 40px;
}
.box>.time {
display: flex;
justify-content: center;
margin-top: 10px;
}
.time>div {
width: 40px;
height: 40px;
background: #333;
line-height: 40px;
text-align: center;
font-weight: 700;
position: relative;
}
.time>div::before {
content: "";
display: block;
width: 100%;
height: 2px;
background: #d00;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
.time>.minute {
margin: 0 10px;
}
<div class="box">
<h3>京东秒杀</h3>
<p>FLASH DEALS</p>
<i class="iconfont icon-lightningbshandian"></i>
<p>本场距离结束还剩</p>
<div class="time">
<div class="hour">00</div>
<div class="minute">00</div>
<div class="second">00</div>
</div>
</div>

再来设计其逻辑部分:
获取相关元素
定义一个处理两个时间差的函数,需要注意的是对于小时、分钟、秒钟如果小于10,那么应该在前面添加“0”来占位,最后利用对象的形式将其返回
为了实现其一个动态的效果,我们可以利用setInterval(),将获取到的时分秒全部放入进去,使其每隔一秒就变化一次
为了用户一打开就能看到效果,我们可以将获取到的时分秒封装到一个函数里,在setInterval()里和外直接调用函数即可实现
//1.获取需要操作的元素
const oHour = document.querySelector(".hour");
const oMinute = document.querySelector(".minute");
const oSecond = document.querySelector(".second");
//2.处理时间差
const remDate = new Date("2021-10-28 23:59:59");
setTime(remDate);
//开启定时器
setInterval(function() {
setTime(remDate);
}, 1000);
//为了让用户一进来就看得到效果,而不是先是三个00
// 我们可以对其进行封装处理
function setTime(remDate) {
const obj = getDifferTime(remDate);
// console.log(obj);
//3.将差值设置给元素
oHour.innerText = obj.hour;
oMinute.innerText = obj.minute;
oSecond.innerText = obj.second;
}
function getDifferTime(remDate, curDate = new Date()) {
//1.得到两个时间之间的差值(毫秒)
const differTime = remDate - curDate;
//2.得到两个时间之间的差值(秒 )
const differSecond = differTime / 1000;
//3.利用相差的总秒数 / 每一天的秒数 = 相差的天数
let day = Math.floor(differSecond / (60 * 60 * 24));
day = day >= 10 ? day : "0" + day;
//4.利用相差的总秒数 / 小时 % 24
let hour = Math.floor(differSecond / (60 * 60) % 24);
hour = hour >= 10 ? hour : "0" + hour;
//5.利用相差的总秒数 / 分钟 % 60
let minute = Math.floor(differSecond / 60 % 60);
minute = minute >= 10 ? minute : "0" + minute;
// 6.利用相差的总秒数 % 秒数
let second = Math.floor(differSecond % 60);
second = second >= 10 ? second : "0" + second;
return {
day: day,
hour: hour,
minute: minute,
second: second,
}
}

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
javascript将字符串转换为8进制的方法:1、使用parseInt()函数将字符串转为十进制数,语法“parseInt(字符串)”;2、使用toString()函数将十进制数转为8进制数,语法“十进制数.toString(8)”。
判断语句这个我们不陌生,就是判断是否满足指定的条件,如果满足则执行一定的代码,否则跳过,下面这篇文章主要给大家介绍了关于JavaScript中判断的优雅写法,需要的朋友可以参考下
这篇文章主要介绍了前端 JavaScript运行原理,JavaScript引擎是一个计算机程序,它的主要作用是JavaScript运行时将源码编译为机器码。每个主流Web浏览器都有自己的JavaScript引擎,它通常由web浏览器供应商开发,接下来一起来看看文章的详细内容吧
这篇文章主要介绍了详解vue简单的store,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
用React如何实现星星评分组件?评分插件在一些购物应用上常常会使用的到,例如用星星评分的效果,那么这一效果是怎样做的呢?下面给大家分享一下用React实现星星评分插件的实例,感兴趣的朋友可以参考。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008