2021-07-30

2021/7/30 23:37:48

本文主要是介绍2021-07-30,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

倒计时的实现

倒计时是web开发中常见的组件, 请完成second和render两个函数, 完成倒计时的显示部分
1、 second函数的输入为整数, 返回 { day: Int, hour: Int, min: Int, second: Int }
2、 render函数的输入为second函数的输出, 将数据在页面对应的DOM元素上显示出来, 格式如html所示
3、 如果day为0, 隐藏对应的DOM元素, 否则显示( 请直接使用已经实现的css代码)
4、 数值不足两位, 前面补充0

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>倒计时实现</title>
</head>
<body>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <script>
        function second(second) { //second是毫秒数
            return { 
                //结果返回一个包含天,时,分,秒的对象
                day: Math.floor(second / 24 / 60 / 60 / 1000),
                hour: Math.floor(second / 60 / 1000 % 24),
                min: Math.floor(second / 60 / 1000 % 60),
                second: Math.floor(second / 1000 % 60)
            }
        }

        function render(data) { //data是second函数的输出结果作为参数传给render函数的
            // console.log(data);
            let spanList = document.getElementsByTagName("span");
            // 这里作判断:大于一天和不足一天的情况
            if (data.day > 0) { // 天
                spanList[0].innerText = (data.day < 9 ? "0" + data.day : data.day) + "天";
            } else {
                spanList[0].classList.add("hide");
            }
            // 注意,这里使用slice方法截取字符串(从倒数第二位开始截取,截两位),不然时、分、秒会出现如"012"这样的,显然不是我们要的!
            spanList[1].innerText = ("0" + data.hour).slice(-2) + ":"; // 时
            spanList[2].innerText = ("0" + data.min).slice(-2) + ":"; // 分
            spanList[3].innerText = ("0" + data.second).slice(-2); // 秒
        }

        // 测试一下
        setInterval(() => {
            let date = new Date();
            let dateData = date.getTime(); //1970年至今的毫秒数

            let date2 = new Date();
            date2.setFullYear(2021, 11, 31); //设置年月日
            date2.setHours(23, 59, 59); //设置时分秒
            let date2Data = date2.getTime(); //1970年至2021年的毫秒数

            let resultData = date2Data - dateData; //差值就是倒计时的时间
            // 判断倒计时是否结束
            if (resultData == 0) { 
                return;
            } else {
                render(second(resultData));
            }
        }, 1000);
    </script>
</body>
</html>


这篇关于2021-07-30的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程