移动端秒杀倒计时功能

倒计时功能思路:

  1. 获取倒计时的时间 = 秒杀时间 - 当前时间
    求得时间戳, 单位毫秒, 让时间戳/1000 取整, 才是秒数
  2. 将秒数, 转换成时分秒
  3. 设置时分秒到页面span里
  4. 添加定时器, 不断倒计时

;(function() {

// 1. new Date(时间戳)

// 2. new Date(时间字符串)
// (1) new Date(“2018-10-17 14:00”);
// 有兼容性问题, ios不支持带 - 的日期格式
/// 只是移动端必然会遇到的兼容性问题,
// (有时候后台, 会给你传 2018-10-17 这样的格式, 就需要转换)
// (2) new Date(“2018/10/17 14:00”);

// 获取元素
var spans = document.querySelectorAll(".seckill_title .time span:nth-child(2n+1)");

// 模拟后台传递的时间字符串
var timeStr = “2018-10-18 12:28”;
// 将所有 - 替换成 /, 需要在正则后面加 g
timeStr = timeStr.replace(/-/g, “/”);
// 秒杀时间
var seckillTime = new Date(timeStr);

// 一进来直接调用一次
setTime();
// 开启定时器, 开始倒计时
var timer = setInterval(setTime, 1000);
function setTime() {

// 实时获取当前时间
var now = new Date();
// 倒计时的秒数
var time = parseInt( (seckillTime - now) / 1000 );

if ( time <= 0 ) {
  // 清除定时器, 让 time 归 0
  time = 0;
  clearInterval( timer );
}
// 将秒数转换成时分秒
var hours = parseInt( time / 3600 );  // 求得所有的小时数, 向下取证
var minites = parseInt( time / 60 ) % 60; // 求得所有分钟数, 超出60的部分进位了, 不管
var seconds = time % 60; // 直接对 60取余数, 超出60的部分进位了, 不管

//console.log( hours + ":" + minites + ":" + seconds );

// 设置给 span
spans[0].innerHTML = addZero(hours);
spans[1].innerHTML = addZero(minites);
spans[2].innerHTML = addZero(seconds);

}
// 封装一个小方法, 专门用于给不足10的数字加0
function addZero( n ) {
return n < 10 ? “0” + n : n;
}
})();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值