【web项目】任务倒计时网页

前言


本来想写一个桌面的,但是看文章说用java和python写更加好,按现在的任务安排来说还是算了。用web写的具体方法我没看到。

模板


逛youtube,选定了
在这里插入图片描述

选定背景图片


最后选择了

  1. 修改尺寸不易损坏画质
  2. 衬托上方黑体字体
    在这里插入图片描述

加上倒计时组件


  1. 不会js暂时,又去copy了

原码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>倒计时</title>
</head>
<body>
    <h1 id="timer"></h1>
    <script>
        function leftTimer(year, month, day, hour, minute, second) {
            var leftTime = (new Date(year, month - 1, day, hour, minute, second)) - (new Date()); //计算剩余的毫秒数
            var days = parseInt(leftTime / 1000 / 60 / 60 / 24); //计算剩余的天数
            var hours = parseInt(leftTime / 1000 / 60 / 60 % 24); //计算剩余的小时
            var minutes = parseInt(leftTime / 1000 / 60 % 60); //计算剩余的分钟
            var seconds = parseInt(leftTime / 1000 % 60); //计算剩余的秒数
            // days = checkTime(days);
            // hours = checkTime(hours);
            // minutes = checkTime(minutes);
            // seconds = checkTime(seconds);
            setInterval("leftTimer(2022,10,7,23,59,59)", 1000); //传入目标时间
            document.getElementById("timer").innerHTML = "距离双十一狂欢购物节还有" +days + "天" + hours + "小时" + minutes + "分" + seconds +
                "秒";
        }

        // function checkTime(i) { //将0-9的数字前面加上0,例1变为01
        //     if (i < 10) {
        //         i = "0" + i;
        //     }
        //     return i;
        // }
        leftTimer();
    </script>
</body>

</html>

  1. 无法把倒计时天、小时、分钟、秒数直接分开

getElementById处稍作修改,拆分为小类,利用相对位置各自分开

js

            // document.getElementById("timer").innerHTML = days + " " + " " + hours 
            // + " " + minutes + " " + seconds + " ";
            document.getElementById("days").innerHTML = days;
            document.getElementById("hours").innerHTML = hours;
            document.getElementById("minutes").innerHTML = minutes;
            document.getElementById("seconds").innerHTML = seconds;

html

		<div class="d1">
            <div id="days"></div>
            <div class="sub">Days</div>
        </div>
        <div class="d2">
            <div id="hours"></div>
            <div class="sub">Hours</div>
        </div>
        <div class="d3">
            <div id="minutes"></div>
            <div class="sub">Minutes</div>
        </div>
        <div class="d4">
            <div id="seconds"></div>
            <div class="sub">Seconds</div>
        </div>

css

.d1{
    position: relative;
    margin-top: 280px;
    /* color: #B5E61D; */
    
}
#days{
    font-weight: bold;
    font-size: 56px;
}
.sub{
    /* position: absolute; */
    font-size: 20px;
    /* 与父类位置的相对位置 */
    margin-top: 5px;
}

.d2{
    position: relative;
    margin-top: 280px;
    margin-left: 50px;
}
#hours{
    font-weight: bold;
    font-size: 56px;
}
.sub{
    /* position: absolute; */
    font-size: 20px;
    /* 与父类位置的相对位置 */
    margin-top: 5px;
}

.d3{
    position: relative;
    margin-top: 280px;
    margin-left: 50px;    
}
#minutes{
    font-weight: bold;
    font-size: 56px;
}
.sub{
    /* position: absolute; */
    font-size: 20px;
    /* 与父类位置的相对位置 */
    margin-top: 5px;
}

.d4{
    position: relative;
    margin-top: 280px;
    margin-left: 50px;    
}
#seconds{
    font-weight: bold;
    font-size: 56px;
}
.sub{
    /* position: absolute; */
    font-size: 20px;
    /* 与父类位置的相对位置 */
    margin-top: 5px;
}

加入留言板


还是不会js,copy中。。
原码:

<!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>Document</title>
</head>
<style>
    * {
        margin: 0;
        padding: 0;
    }

    body {
        padding: 100px;
    }

    textarea {
        width: 200px;
        height: 100px;
        border: 1px black solid;
        /* 不设置轮廓 */
        outline: none;
        /* 设置其不能改变长宽 */
        resize: none;
    }

    li {
        width: 300px;
        padding: 5px;
        background-color: #B5E61D;
        font-size: 15px;
        margin: 15px 0;
    }

    li a {
        float: right;
    }
</style>

<body>
    <textarea></textarea>
    <button>发布</button>
    <ul ></ul>
    <script>
        //1、获取元素
        var txt = document.querySelector("textarea");
        var btn = document.querySelector("button");
        var ul = document.querySelector("ul");
        //2、给button绑定点击事件
        btn.onclick = function () {
            if (txt.value == "") {//当文本框中没有文字时,提示
                alert("您没有输入内容")
            } else {
                //创建元素li作为留言区
                var li = document.createElement("li");
                //将文本框中的内容放到li中,a标签中href中的内容代表什么都不执行
                li.innerHTML = txt.value + "<a href='javascript:;'>删除</a>"
                txt.value = "";//添加之后文本框的内容清空
                //将留言添加到ul中,而且在最上方
                ul.insertBefore(li, ul.children[0]);
                //当点击删除时删除ul中的li
                var as = document.querySelectorAll("a");
                //循环给每个删除绑定事件
                for (var i = 0; i < as.length; i++) {
                    as[i].onclick = function () {
                        //删除当前a标签所在位置的父节点li
                        ul.removeChild(this.parentNode);
                    }
                }
            }
        }
    </script>
</body>

</html>

修饰时间(完整代码)


css

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body{
    width:1550px;
    height: 800px;;
    position: relative;
    display: flex;
    /* 左右居中 */
    justify-content: center; 
    /* 上下居中 */
    /* align-items: center; */
    min-height: 100vh;
    overflow:hidden;
}

.content{
    position: absolute;
    width:100%;
    height:100%;
    background: url(14.jpg);
    background-repeat: no-repeat;
    background-position: center 0;
}
.title{
    position: absolute;
    margin-top: 120px;
    font-size: 66px;
    /* font-weight: bold; */
}

.mission{
    position: absolute;
    margin-top: 220px;
    font-size: 46px;
    color: #ED6769;
}

.d1{
    position: relative;
    margin-top: 280px;
    /* color: #B5E61D; */
    
}
#days{
    font-weight: bold;
    font-size: 56px;
}
.sub{
    /* position: absolute; */
    font-size: 20px;
    /* 与父类位置的相对位置 */
    margin-top: 5px;
}

.d2{
    position: relative;
    margin-top: 280px;
    margin-left: 50px;
}
#hours{
    font-weight: bold;
    font-size: 56px;
}
.sub{
    /* position: absolute; */
    font-size: 20px;
    /* 与父类位置的相对位置 */
    margin-top: 5px;
}

.d3{
    position: relative;
    margin-top: 280px;
    margin-left: 50px;    
}
#minutes{
    font-weight: bold;
    font-size: 56px;
}
.sub{
    /* position: absolute; */
    font-size: 20px;
    /* 与父类位置的相对位置 */
    margin-top: 5px;
}

.d4{
    position: relative;
    margin-top: 280px;
    margin-left: 50px;    
}
#seconds{
    font-weight: bold;
    font-size: 56px;
}
.sub{
    /* position: absolute; */
    font-size: 20px;
    /* 与父类位置的相对位置 */
    margin-top: 5px;
}

/* 留言板 */
.title1{
    position: absolute;
    left:0px;
    top:0px;
    font-size: 26px;;
    color: black;
}
.broad{
    position: absolute; 
    left:0px;
    top: 46px;
}

textarea {
    /* position: absolute; */
    width: 300px;
    height: 100px;
    border: 1px black solid;
    /* 不设置轮廓 */
    outline: none;
    /* 设置其不能改变长宽 */
    resize: none;

    font-size: 20px;
}

li {
    width: 300px;
    padding: 5px;
    background-color:white;
    font-size: 15px;
    margin: 15px 0;
}

li a {
    float: right;
}

html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="style.css">
    <title>倒计时</title>
</head>
<body>
    <div class="content"></div>
    <div class="title">Mission Countdown</div>
    <div class="mission">距离国庆结束还有...</div>
    <!-- <div id="timer" class="timer"></div> -->
    <!-- err2:不能利用空格拉开距离 -->
    <!-- <div id="timer" class="timer"> -->
        <!-- err1 独占一行-->
        <!-- <div id="days"></div><div id="hours"></div><div id="minutes"></div><div id="seconds"></div> -->
        
        <!-- 使用相对位置 + 一个数配合一个sub -->
        <div class="d1">
            <div id="days"></div>
            <div class="sub">Days</div>
        </div>
        <div class="d2">
            <div id="hours"></div>
            <div class="sub">Hours</div>
        </div>
        <div class="d3">
            <div id="minutes"></div>
            <div class="sub">Minutes</div>
        </div>
        <div class="d4">
            <div id="seconds"></div>
            <div class="sub">Seconds</div>
        </div>


        <p class="title1">message board~</p>
        <div class="broad">
            
            <textarea></textarea>
            <button>发布</button>
            <ul ></ul>
        </div>
        
    <script>
        function leftTimer(year, month, day, hour, minute, second) {
            var leftTime = (new Date(year, month - 1, day, hour, minute, second)) - (new Date()); //计算剩余的毫秒数
            var days = parseInt(leftTime / 1000 / 60 / 60 / 24); //计算剩余的天数
            var hours = parseInt(leftTime / 1000 / 60 / 60 % 24); //计算剩余的小时
            var minutes = parseInt(leftTime / 1000 / 60 % 60); //计算剩余的分钟
            var seconds = parseInt(leftTime / 1000 % 60); //计算剩余的秒数
            // days = checkTime(days);
            // hours = checkTime(hours);
            // minutes = checkTime(minutes);
            // seconds = checkTime(seconds);
            setInterval("leftTimer(2022,10,7,23,59,59)", 1000); //传入目标时间
            // document.getElementById("timer").innerHTML = days + " " + " " + hours 
            // + " " + minutes + " " + seconds + " ";
            document.getElementById("days").innerHTML = days;
            document.getElementById("hours").innerHTML = hours;
            document.getElementById("minutes").innerHTML = minutes;
            document.getElementById("seconds").innerHTML = seconds;
        }

        // function checkTime(i) { //将0-9的数字前面加上0,例1变为01
        //     if (i < 10) {
        //         i = "0" + i;
        //     }
        //     return i;
        // }
        leftTimer();

        // 留言板
        //1、获取元素
        var txt = document.querySelector("textarea");
        var btn = document.querySelector("button");
        var ul = document.querySelector("ul");
        //2、给button绑定点击事件
        btn.onclick = function () {
            if (txt.value == "") {//当文本框中没有文字时,提示
                alert("您没有输入内容")
            } else {
                //创建元素li作为留言区
                var li = document.createElement("li");
                //将文本框中的内容放到li中,a标签中href中的内容代表什么都不执行
                li.innerHTML = txt.value + "<a href='javascript:;'>删除</a>"
                txt.value = "";//添加之后文本框的内容清空
                //将留言添加到ul中,而且在最上方
                ul.insertBefore(li, ul.children[0]);
                //当点击删除时删除ul中的li
                var as = document.querySelectorAll("a");
                //循环给每个删除绑定事件
                for (var i = 0; i < as.length; i++) {
                    as[i].onclick = function () {
                        //删除当前a标签所在位置的父节点li
                        ul.removeChild(this.parentNode);
                    }
                }
            }
        }
    </script>
</body>
</html>

图片就是上面那张自己保存吧~

缺陷


  1. 留言板发布内容,随着刷新清除
    有空再搞吧,俺累了~

新知识


  1. 【JS】checkTime函数,设置小于10的时间数字格式,例如5秒显示成05秒
  2. 【JS】 parseInt方法接收两个参数,parseInt(string,radix?);
  • string:要被解析的值。如果参数不是一个字符串,则将其转换为字符串(toString)。字符串开头的空白符将会被忽略。
  • radix:可选。从 2 到 36,表示被解析的值的进制。例如说指定 10 就等于指定十进位。
  1. 【css】margin类,与父类的相对位置
  2. 【css】
    左右居中 justify-content: center;
    上下居中 align-items: center;
  3. ul和li是配合使用的
  4. textarea留言板组件
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值