js实现京东秒杀倒计时功能


Posted in Javascript onJanuary 21, 2019

本文实例为大家分享了js实现京东秒杀倒计时功能的具体代码,供大家参考,具体内容如下

首先给大家看看效果图,因为是做的移动端的,所以放大给大家看看局部就行:

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);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS记录用户登录次数实现代码
Jan 15 Javascript
js鼠标点击图片切换效果代码分享
Aug 26 Javascript
有关文件上传 非ajax提交 得到后台数据问题
Oct 12 Javascript
vue.js表格组件开发的实例详解
Oct 12 Javascript
原生js实现秒表计时器功能
Feb 16 Javascript
Angular 4依赖注入学习教程之简介(一)
Jun 04 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
Jun 29 jQuery
vue-awesome-swiper滑块插件使用方法详解
Nov 27 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
图文详解vue框架安装步骤
Feb 12 Javascript
javascript面向对象三大特征之封装实例详解
Jul 24 Javascript
javascript实现留言板功能
Feb 08 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 #Javascript
JavaScript使用Math.random()生成简单的验证码
Jan 21 #Javascript
详解一个基于react+webpack的多页面应用配置
Jan 21 #Javascript
js中对象和面向对象与Json介绍
Jan 21 #Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
Jan 21 #Javascript
JavaScript常用事件介绍
Jan 21 #Javascript
JavaScript使用闭包模仿块级作用域操作示例
Jan 21 #Javascript
You might like
4.与数据库的连接
2006/10/09 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
简单实现php上传文件功能
2017/09/21 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
复制粘贴功能的Python程序
2008/04/04 Python
python实现多线程的两种方式
2016/05/22 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
python实现的发邮件功能示例
2019/09/11 Python
在vscode中配置python环境过程解析
2019/09/28 Python
Python FFT合成波形的实例
2019/12/04 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
法律专业实习鉴定
2013/12/22 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
车队司机个人自我鉴定
2014/04/17 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
小程序实现文字循环滚动动画
2021/06/14 Javascript
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS