让我们疯狂的倒计时

相信大家都有过在各大购物平台等待倒计时结束的疯狂抢购吧,有在遵守交通规则,红灯停绿灯行,有在跨年之夜疯狂庆祝新年倒计时吧。生活中还有很多,比如火箭发射,微波炉,洗衣机,游戏,制作爆米花等;都会用到倒计时;既然应用的如此广泛,你想不想知道它的原理呢;怎样才能才网页上写出倒计时呢?

首先我们来设置一个功能;设置一个未来的时间,用未来的时间减去现在的时间就得到了中间的时间差

function countDown() {
    var future = new Date(2019,5,12,8);
    var remTime = (future - new Date()) / 1000;
    // 间隔时间 秒    
    if (remTime <= 0) return true;    
    var days = parseInt(remTime / 60 / 60 / 24);
    // 换算  秒 / 60 => 分钟 / 60 => 小时 / 24 => 天    
    var hours = parseInt(remTime / 60 / 60 % 24);
    // 换算  秒 / 60 => 分钟 / 60 => 小时 % 24 => 剩余小时    
    var minutes = parseInt(remTime / 60 % 60);
    // 换算  秒 / 60 => 分钟 % 60 =>  剩余分钟    
    var seconds = parseInt(remTime % 60);
    // 换算  秒 % 60 => 剩余秒    
    document.body.innerHTML = ('剩余:' + addZero(days) + '天, ' + addZero(hours) + '小时,' + addZero(minutes) + '分钟,' + addZero(seconds) + '秒') ;
    // 渲染在页面
    function addZero(num) {
        return num < 10 ? '0' + num : num; 
    }
    // 补零函数
}

因为得到的时间差是毫秒;所以要除以一千得到秒;换算出天,小时,分钟和秒后;用字符串加性拼接渲染在页面上;然后放一个补零函数。
现在倒计时样式已经完成了;但是还不会动;我们需要添加一个定时器

var timer = setInterval (function () {
    if (countDown()) {
        clearInterval(timer);
        timer = null;
        document.body.innerHTML = '下课啦!!!';
    }
},1000)

如果倒计时完成;我们就需要清除定时器;在间隔时间下面做判断加return;下面的代码则不再执行了;简单的倒计时就完成了

你可能感兴趣的:(让我们疯狂的倒计时)