最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實(shí)現(xiàn)頁面多個日期時間倒計時效果

 更新時間:2019年06月20日 11:47:13   作者:xiexikk  
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)頁面多個日期時間倒計時效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下

js的日期倒計時在日常項目中還是比較常用的,活動、拼團(tuán)功能最為常見,先分析最要是處理好日期函數(shù),然后一個頁面上有多個倒計時情況下的方法;

來,先看下 拼多多 的拼單倒計時的效果:

那么,先上個代碼吧:

案例效果:

<style>
  .mytime{ line-height: 40px; width: 300px; margin: 0 auto;}
 </style>

<div class="mytime jsTime" data-time="2019-04-01 16:58:00">時間1</div>
<div class="mytime jsTime" data-time="2019-04-04 18:00:02">時間2</div>
<div class="mytime jsTime" data-time="2019-04-05 19:01:31">時間3</div>
<div class="mytime jsTime" data-time="2019-04-06 05:05:15">時間4</div>
<div class="mytime jsTime" data-time="2019-04-07 09:01:43">時間5</div>
<hr>
<div class="mytime jsTime2" data-time="2019-04-08 16:30:05">時間1</div>
<div class="mytime jsTime2" data-time="2019-04-09 14:01:22">時間2</div>
<div class="mytime jsTime2" data-time="2019-04-10 18:06:25">時間3</div>
<div class="mytime jsTime2" data-time="2019-04-11 22:07:19">時間4</div>
<div class="mytime jsTime2" data-time="2019-04-12 23:12:38">時間5</div>
<!-- 方法1 -->
<script>
 const countdown = {
  domList : document.querySelectorAll('.jsTime'),
  formatNumber(n){
   // return n.toString().padStart(2, '0'); // 用padStart方法要注意兼容問題
   n = n.toString();
   return n[1] ? n : '0' + n;
  },
  setTime(dom){
   //獲取設(shè)置的時間 如:2019-3-28 14:00:00 ios系統(tǒng)得加正則.replace(/\-/g, '/');
   const leftTime = new Date(dom.getAttribute('data-time').replace(/\-/g, '/')) - new Date();
   if (leftTime >= 0) {
    const d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
    const h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
    const m = Math.floor(leftTime / 1000 / 60 % 60);
    const s = Math.floor(leftTime / 1000 % 60);
    dom.innerHTML = `剩余${ d > 0 ? d + '天' : '' }${ [h, m, s].map(this.formatNumber).join(':') }`;
   } else {
    clearInterval(dom.$timer);
    dom.innerHTML = '拼團(tuán)已結(jié)束';
   }
  },
  start(){
   this.domList.forEach((dom) => {
    this.setTime(dom);
    dom.$timer = setInterval(() => {
     this.setTime(dom);
    }, 1e3);
   });
  },
 };
 countdown.start();
</script>
<!-- 方法2 -->
<script>
 //時間格式處理
 const formatNumber = n => {
 n = n.toString();
 return n[1] ? n : '0' + n;
 };
 //團(tuán)購倒計時
 const teamCountTime = (obj) => {
 var timer = null;
 function fn(){
  //獲取設(shè)置的時間 如:2019-3-28 14:00:00 ios系統(tǒng)得加正則.replace(/\-/g, '/');
  var setTime = obj.getAttribute('data-time').replace(/\-/g, '/');
  //獲取當(dāng)前時間
  var date = new Date(),
   now  = date.getTime(),
   endDate = new Date(setTime),
   end  = endDate.getTime();
  //時間差
  var leftTime = end - now;
  //d,h,m,s 天時分秒
  var d, h,m,s;
  var otime = '';
  if (leftTime >= 0) {
  d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
  h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
  m = Math.floor(leftTime / 1000 / 60 % 60);
  s = Math.floor(leftTime / 1000 % 60);
  if (d <= 0) {
   otime = [h, m, s].map(formatNumber).join(':');
  } else {
   otime = d + '天' + [h, m, s].map(formatNumber).join(':');
  }
  obj.innerHTML = '剩余' + otime;
  //
  timer = setTimeout(fn, 1e3);
  } else {
  clearTimeout(timer);
  obj.innerHTML = '拼團(tuán)已結(jié)束';
  }
 }
 fn();
 };
 let jsTimes = document.querySelectorAll('.jsTime2');
 jsTimes.forEach((obj) => {
 teamCountTime(obj);
 });
</script>

具體代碼可訪問本人github

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

西畴县| 嘉荫县| 玉田县| 蕲春县| 南宁市| 洪江市| 沂源县| 图木舒克市| 永定县| 托克逊县| 波密县| 长葛市| 福海县| 泸西县| 阿克苏市| 响水县| 上高县| 阳春市| 中江县| 任丘市| 汶上县| 道孚县| 高阳县| 繁昌县| 大新县| 工布江达县| 石门县| 左贡县| 普安县| 稷山县| 开封县| 九寨沟县| 商洛市| 石柱| 静海县| 松阳县| 宝应县| 通化县| 华池县| 图木舒克市| 黄平县|