• 限时抢购倒计时效果


    HTML:

    <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>

    JS:

     1 <!-- 方法1 -->
     2 <script>
     3     const countdown = {
     4         domList : document.querySelectorAll('.jsTime'),
     5         formatNumber(n){
     6             // return n.toString().padStart(2, '0');  // 用padStart方法要注意兼容问题
     7             n = n.toString();
     8             return n[1] ? n : '0' + n;
     9         },
    10         setTime(dom){
    11             //获取设置的时间 如:2019-3-28 14:00:00  ios系统得加正则.replace(/-/g, '/');
    12             const leftTime = new Date(dom.getAttribute('data-time').replace(/-/g, '/')) - new Date();
    13             if (leftTime >= 0) {
    14                 const d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
    15                 const h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
    16                 const m = Math.floor(leftTime / 1000 / 60 % 60);
    17                 const s = Math.floor(leftTime / 1000 % 60);
    18                 dom.innerHTML = `剩余${ d > 0 ? d + '天' : '' }${ [h, m, s].map(this.formatNumber).join(':') }`;
    19             } else {
    20                 clearInterval(dom.$timer);
    21                 dom.innerHTML = '拼团已结束';
    22             }
    23         },
    24         start(){
    25             this.domList.forEach((dom) => {
    26                 this.setTime(dom);
    27                 dom.$timer = setInterval(() => {
    28                     this.setTime(dom);
    29                 }, 1e3);
    30             });
    31         },
    32     };
    33     countdown.start();
    34 </script>
     1 <!-- 方法2 -->
     2 <script>
     3   //时间格式处理
     4   const formatNumber = n => {
     5     n = n.toString();
     6     return n[1] ? n : '0' + n;
     7   };
     8   //团购倒计时
     9   const teamCountTime = (obj) => {
    10     var timer = null;
    11     function fn(){
    12       //获取设置的时间 如:2019-3-28 14:00:00  ios系统得加正则.replace(/-/g, '/');
    13       var setTime = obj.getAttribute('data-time').replace(/-/g, '/');
    14       //获取当前时间
    15       var date    = new Date(),
    16           now     = date.getTime(),
    17           endDate = new Date(setTime),
    18           end     = endDate.getTime();
    19       //时间差
    20       var leftTime = end - now;
    21       //d,h,m,s 天时分秒
    22       var d, h,m,s;
    23       var otime = '';
    24       if (leftTime >= 0) {
    25         d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
    26         h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
    27         m = Math.floor(leftTime / 1000 / 60 % 60);
    28         s = Math.floor(leftTime / 1000 % 60);
    29         if (d <= 0) {
    30           otime = [h, m, s].map(formatNumber).join(':');
    31         } else {
    32           otime = d + '天' + [h, m, s].map(formatNumber).join(':');
    33         }
    34         obj.innerHTML = '剩余' + otime;
    35         //
    36         timer = setTimeout(fn, 1e3);
    37       } else {
    38         clearTimeout(timer);
    39         obj.innerHTML = '拼团已结束';
    40       }
    41     }
    42     fn();
    43   };
    44   let jsTimes = document.querySelectorAll('.jsTime2');
    45   jsTimes.forEach((obj) => {
    46     teamCountTime(obj);
    47   });
    48 </script>

    效果:  

      

    原文地址:https://blog.csdn.net/weixin_42211816/article/details/88871407

  • 相关阅读:
    phpstorm操作集锦
    图片、音频获取二进制流或url的blob值
    sublime text 3 快捷键
    dd与sql 打印工具
    php生成二维码(可带logo)
    jQuery append加入的元素 绑定事件无效
    Linux运维架构师学习之路
    硬盘安装win7
    Composer安装与使用
    Js循环做法
  • 原文地址:https://www.cnblogs.com/hermitks/p/10907394.html
Copyright © 2020-2023  润新知