本文实例为大家分享了js实现京东秒杀倒计时功能的具体代码,供大家参考,具体内容如下
首先给大家看看效果图,因为是做的移动端的,所以放大给大家看看局部就行:
关于实现京东秒杀,之前用过其他的方法,今天给大家分享一个原生的方法吧,不会很难.
1、倒计时页面结构:
<div class="secondkill"> <div class="top"> <span class="red fl">掌上秒杀</span> <span class="num fl">0</span> <span class="num fl">5</span> <span class="colon fl">:</span> <span class="num fl">3</span> <span class="num fl">5</span> <span class="colon fl">:</span> <span class="num fl">3</span> <span class="num fl">0</span> <span class="more fr">更多</span> </div>
2、css样式:这个是用css的编译器sass写的
.secondkill { .top { height: 40px; border-top: 3px solid $jdred; border-bottom: 1px solid #ccc; padding-top: 5px; .red { color: $jdred; } .num { background-color: #000; margin: 0px 3px; padding: 3px; color: white; } }
3、js部分:
//倒计时 //1. 指定倒计时的到期时间(2018-5-29 21:08:49) //可以直接使用年月日时分秒来创建一个date对象,但是月是从0开始的 var to = new Date(2018, 4, 29, 20, 20, 10); function antitime() { var now = new Date(); //2. 拿到当前时间和过期时间之间的时间差(毫秒) var deltaTime = to - now; //到期时间和当前时间相差的毫秒数 //如果超时了,就停止倒计时 if (deltaTime <= 0) { //停止计时器 window.clearInterval(timer); //停止执行下面的代码 return; } //已知毫秒数,算出几分几秒几秒 var m = Math.floor(deltaTime / (60*1000)); //算出有多少秒 var s = Math.floor(deltaTime / 1000 % 60); //算出多少毫秒, 毫秒数只显示10位和百位 var ms = Math.floor(deltaTime % 1000 / 10); //把时间的数字转成字符串, 如果分秒毫秒不足10, 则前面补0 var timeStr = "" + (m<10"0"+m:m) + (s<10"0"+s:s) + (ms<10"0"+ms:ms); console.log(timeStr); //063535 //each是用来遍历.num元素, 其实你可以理解成循环 $(".secondkill .num").each(function(index, span) { //console.log(span); $(span).html(timeStr.substring(index, index+1)); //$(span), span默认是一个js对象,需要用$(span)变成一个jquery对象 //$(span).html();这个方法是用来设置span里面的值的 //timeStr.subSring();该方法是用来截取字符串 “abcdefg” }); } //每十毫秒执行一次 var timer = setInterval(antitime, 10); });
注意部分:
1、注意这个部分,时间要给定一个时间,比如京东上午十点秒杀结束,那这里时间就要填10点,注意月份是从0开始的,所以5月要写4月。这个时间如果过了这个倒计时就不会再执行了的,大家谨记。
var to = new Date(2018, 4, 29, 20, 20, 10);
2、这里拿到的是毫秒,在后面计算分秒毫秒的时候大家要注意换算。
//2. 拿到当前时间和过期时间之间的时间差(毫秒) var deltaTime = to - now; //到期时间和当前时间相差的毫秒数
3、要判断,如果不足10就要给前面加一个0。
//把时间的数字转成字符串, 如果分秒毫秒不足10, 则前面补0 var timeStr = "" + (m<10"0"+m:m) + (s<10"0"+s:s) + (ms<10"0"+ms:ms); console.log(timeStr);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。