zoukankan      html  css  js  c++  java
  • 倒计时效果

    1,案例分析:

       ①这个倒计时是不断变化的,因此需要定时器来自动变化(setInterval)

       ②三个黑色盒子里面分别存放 时分秒

       ③ 三个黑色盒子利用 innerHTML 放入计算的 小时分钟秒数

       ④ 第一次执行也是间隔毫秒数,因此刷新页面会有空白,最后采取封装函数的方式,这样可以先调用一次这个函数,防止刚开始刷新页面有空白问题。

    2,完整代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            div{
                margin:100px;
            }
            span{
                display:inline-block;
                40px;
                height:40px;
                background-color: #333;
                font-size:20px;
                color:#fff;
                text-align:center;
                line-height:40px;
            }
        </style>
    </head>
    <body>
    <div>
        <span class="hour">1</span>
        <span class="minute">2</span>
        <span class="second">3</span>
    </div>
    <script>
      var hour=document.querySelector(".hour");
      var minute=document.querySelector(".minute");
      var second=document.querySelector(".second");
      var inputTime=+new Date('2019-9-8 18:00');  //返回的是用户输入时间总的毫秒数
      countDown(); //先调用一次这个函数,防止第一次刷新页面有空白
      setInterval(countDown,1000) //开启定时器
      function countDown(){
          var nowTime=+new Date(); //返回的是当前时间总的毫秒数
          var times=(inputTime-nowTime)/1000; //times是剩余时间总的秒数
          var h=parseInt(times/60/60%24);
          h=h<10 ? '0'+h : h;
          hour.innerHTML=h; //把剩余的小时给小时盒子
    
          var m=parseInt(times/60%60);
          m=m<10 ? '0'+m : m;
          minute.innerHTML=m; //把剩余的分钟给分钟盒子
    
          var s=parseInt(times%60);
          s=s<10 ? '0'+s : s;
          second.innerHTML=s; //把剩余的秒数给秒数盒子
      }
    </script>
    </body>
    </html>

    3,关键代码:

       倒计时时间计算

                var demo=document.getElementById("demo");
                var endTime=new Date("2019/7/19 20:00:00");   //设定截至时间
                setInterval(fn,1000);  //开启定时器
    
                function fn(){
                    var nowTime=new Date();   //一定要获取最新时间,放在函数体内
                    var miao=parseInt((endTime.getTime()-nowTime.getTime())/1000); //用将来的时间毫秒减去现在的时间毫秒再除以1000得到还剩下的秒数,可能除不断要取整
                    var d=parseInt(miao/3600/24); //得到天数
                    var h=parseInt(miao/3600%24);  //得到小时数
                    var m=parseInt(miao/60);  //得到分钟数
                    var s=parseInt(miao);  //得到秒数
    
                    //目的是使时分秒以两位数形式展示
                    d<10? d="0"+d : d=d;
                    h<10? h="0"+h : h=h;
                    m<10? m="0"+m : m=m;
                    s<10? s="0"+s : s=s;
    
                    demo.innerHTML="距离抢购还有:  "+d+""+h+"小时"+m+""+s+"";
                }
  • 相关阅读:
    归并排序,树状数组 两种方法求逆序对
    volley源代码解析(六)--HurlStack与HttpClientStack之争
    what&#39;s new in vc2015
    [ajax 学习笔记] ajax初试
    安卓项目开发实战(1)--首页顶部菜单BAR实现
    eclipse下Tomcat7.0启动奔溃问题
    伸缩--也可用于tabs
    怎样提高团队管理能力8
    mysql查询今天,昨天,近7天,近30天,本月,上一月数据
    SDSoC使用体验
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/11487345.html
Copyright © 2011-2022 走看看