• 抢购倒计时的实现


    <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函数,通过判断是否是服务器返回的时间如果是,手动的进行时间的增加。

  • 相关阅读:
    正则表达式
    面向对象(访问控制、继承、重写)
    你凌晨1点半会想什么
    10、android学习资源整理
    9、android开发之java.lang.verifyError(转载)
    8、android代码优化技术记录
    6、android 普通日志输出到SD卡
    刷机总结(阿里云os-->android4.2.2)注明:本文不是教程
    忘记树莓派密码怎么办?
    7、android的button如何平铺一张图片?
  • 原文地址:https://www.cnblogs.com/angle-xiu/p/11359378.html
Copyright © 2020-2023  润新知