JS 封装倒计时

最近的需求是:网站使用 polyv 做的直播功能,左侧有一个倒计时功能
设计稿效果如图:

 

 

 前端实现效果如图:

 

 

话不多说,直接上代码

HTML 代码片段:
<div class="countDown">
   <span id="_d"></span><span id="_h"></span>
   <span id="_m"></span>
   <span id="_s"></span>
</div>

注意⚠️:样式自己调试一下
JS 代码片段: document.addEventListener('DOMContentLoaded', () => { // 设置开始时间 var begDate = new Date(开始时间).getTime() function countTime () { var date = new Date().getTime() // 现在秒数 // 时间差 var begTime = begDate - date // 开始秒数 - 现在秒数 距离活动开始 // 个位数前补 0 function addZero (i) { return i < 10 ? '0' + i : i + '' }// 定义变量 d,h,m,s保存倒计时的时间 var d, h, m, s var day = document.getElementById('_d') var hour = document.getElementById('_h') var min = document.getElementById('_m') var sec = document.getElementById('_s') if (begTime >= 0) { // 如果开始时间大于等于0 的时候 执行 d = Math.floor(begTime / 1000 / 60 / 60 / 24) h = Math.floor(begTime / 1000 / 60 / 60 % 24) m = Math.floor(begTime / 1000 / 60 % 60) s = Math.floor(begTime / 1000 % 60) day.innerHTML = addZero(d) hour.innerHTML = addZero(h) min.innerHTML = addZero(m) sec.innerHTML = addZero(s) } else { // 结束的时候执行这里 day.innerHTML = '00' hour.innerHTML = '00' min.innerHTML = '00' sec.innerHTML = '00' clearTimeout(countTime) // 结束的时候清除定时器 return // 并停止这个函数 } setTimeout(countTime, 1000) // 每一秒执行一次这个函数 } countTime() // 执行函数 })

 

posted @ 2021-11-11 11:05  Freya~  阅读(130)  评论(0)    收藏  举报