zoukankan      html  css  js  c++  java
  • 抢购倒计时的实现

    <html>
    
    <head>
        <meta charset="utf-8">
        <style>
            .timebox {
                border: 1px pink solid;
                width: 300px;
                height: 50px;
                text-align: center;
                margin: 0 auto;
                font-size: 20px;
                line-height: 50px;
            }
        </style>
    </head>
    
    <body>
        <div class="timebox">
            距离抢购时间还剩:
            <span>-- :-- :--</span>
        </div>
    </body>
    <script>
        let timebox = document.querySelector(".timebox"),
            timespan = document.querySelector("span");
    
        function addZero(val) {
            return val < 10 ? '0' + val : val;
        }
        /*
            computeTime:接收服务器字符串打印离抢购的时间
            @params:[String timeStr]服务器返回的时间字符串
            @return:
        */
        let computeTime = function (timeStr) {
            if (typeof timeStr === "undefined") {
                //此处不能用let声明变量,不然外部无法访问;
                var nowTime = new Date(); //当前客户端时间,后期需要换成服务端时间
            } else {
                //字符串的处理,需要的同学可以参考下我的随笔
                console.log(1);
            }
            let endTime = new Date('2019/8/16 18:00:00'),
                diffTime = endTime - nowTime;
            if (diffTime >= 0) {
                let hours = Math.floor(diffTime / (1000 * 60 * 60));
                diffTime = diffTime - hours * 3600000;
                let minute = Math.floor(diffTime / (1000 * 60));
                diffTime = diffTime - minute * 60000;
                let second = Math.floor(diffTime / 1000);
                timespan.innerHTML = `${addZero(hours)}:${addZero(minute)}:${addZero(second)}`;
                return;
            }
            timespan.innerHTML = '抢购开始';
        };
        setInterval(computeTime,1000);
    </script>
    
    </html>

       基于服务器获取时间的思路:

      1.第一次通过AJAX请求获取请求头的时间信息(xhr.readyState===2,而不用等整个请求的完成),并用一个全局变量保存起来。

      2.接下来不再次向服务器发送请求,每次执行computeTime函数,通过判断是否是服务器返回的时间如果是,手动的进行时间的增加。

  • 相关阅读:
    算法竞赛入门经典训练指南——UVA 11300 preading the Wealth
    hiho一下 第148周
    ajax总结及案例
    Spring事务
    Struts2拦截器介绍
    Struts2的拦截器----Dog实例
    Struts2文件的下载
    Struts2文件的上传
    Struts2类型转换
    Struts2 属性驱动、模型驱动、异常机制
  • 原文地址:https://www.cnblogs.com/angle-xiu/p/11359378.html
Copyright © 2011-2022 走看看