国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

js實現頁面多個日期時間倒計時效果

2024-05-06 16:52:29
字體:
來源:轉載
供稿:網友

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

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

js,頁面,倒計時

那么,先上個代碼吧:

案例效果:

js,頁面,倒計時

<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){      //獲取設置的時間 如:2019-3-28 14:00:00 ios系統得加正則.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 = '拼團已結束';      }    },    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; }; //團購倒計時 const teamCountTime = (obj) => {  var timer = null;  function fn(){   //獲取設置的時間 如:2019-3-28 14:00:00 ios系統得加正則.replace(//-/g, '/');   var setTime = obj.getAttribute('data-time').replace(//-/g, '/');   //獲取當前時間   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 = '拼團已結束';   }  }  fn(); }; let jsTimes = document.querySelectorAll('.jsTime2'); jsTimes.forEach((obj) => {  teamCountTime(obj); });</script>

具體代碼可訪問本人github

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尼勒克县| 新密市| 玉溪市| 巧家县| 武川县| 麻栗坡县| 巫山县| 龙江县| 太保市| 潜山县| 聂拉木县| 肇州县| 兴山县| 响水县| 雷山县| 巴青县| 太原市| 皮山县| 鹤庆县| 沂南县| 阿勒泰市| 武穴市| 丹凤县| 都昌县| 方山县| 钟祥市| 绥宁县| 北海市| 灌阳县| 池州市| 那曲县| 九龙县| 嵩明县| 象山县| 卢龙县| 荥阳市| 桐柏县| 余庆县| 比如县| 佛冈县| 文山县|