首页 前端知识 特别的时钟特别的倒计时

特别的时钟特别的倒计时

2024-07-08 09:07:17 前端知识 前端哥 389 104 我要收藏

 

 

念念不忘的歌曲:That's Why You Go Away

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>一个特别的倒计时</title>
</head>
<style>
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Poppins', sans-serif;
    }
    /* 首页样式开始 */
    .home_page {
        position: fixed;
        top: 0;
        left: 600px;
        background-color: #4CAF50;
        color: white;
        border: 1px solid #4CAF50;
        font-size: 20px;
        margin: 20px;
        padding: 2px 5px;
        border-radius: 5px;
        text-decoration: none;
        &:hover {
            background-color: #e4f904;
            color: rgb(245, 5, 5);
        }
    }
    /* 首页样式结束 */
    body {
        background: radial-gradient(at 60% 0%, #5190b0, #235746);
    }
    /*************************现在时间*******************************/
    .times {
        min-height: 100vh;
    }
    #year {
        position: absolute;
        font-size: 70px;
        left: 950px;
        top: 50px;
        transform: translate(-50%, -50%);
        color: #fed330;
        /*模糊 filter: blur(0.5vw); */
        z-index: 1;
    }
    .main {
        background: #000000;
        position: absolute;
        border-radius: 1vw;
        left: 280px;
        top: 520px;
        font-size: 3vw;
        position: absolute;
        color: rgb(252, 4, 4);
        transform: translate(-50%, -50%);
        display: flex;
        justify-content: center;
        align-items: center;
        background-image: linear-gradient(to top left,
                rgba(0, 0, 0, 0.2),
                rgba(0, 0, 0, 0.2) 30%,
                rgba(0, 0, 0, 0));
        box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
            inset -4px -4px 5px rgba(0, 0, 0, 0.6);
        border: 0px solid black;
        span {
            width: 4vw;
            height: 90vh;
            border: 2px solid white;
            position: relative;
            border: none;
        }
        .wan {
            width: 15px;
        }
        .wai {
            width: 50px;
        }
        .wan,
        .wai {
            position: relative;
            top: -60px;
            left: 3px;
        }
        span::before {
            /*  直接注释掉这行  content: attr(datatext);就不可以显示时间数字哦 */
            content: attr(datatext);
            position: absolute;
            top: -60px;
            left: 3px;
        }
        span::after {
            content: "";
            position: absolute;
            width: 100%;
            box-sizing: border-box;
            border: 2px solid transparent;
            bottom: 0;
            border-radius: 1vw 1vw 0 0;
            filter: blur(2px);
            transition: 1s linear;
            height: var(--s);
            background-image: linear-gradient(to top left,
                    rgba(0, 0, 0, 0.2),
                    rgba(0, 0, 0, 0.2) 30%,
                    rgba(0, 0, 0, 0));
            box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
                inset -4px -4px 5px rgba(0, 0, 0, 0.6);
            border: 0px solid black;
        }
        #month::after {
            background: #8854d0;
        }
        #day::after {
            background: #3867d6;
        }
        #hour::after {
            background: #20bf6b;
        }
        #min::after {
            background: #d1d8e0;
        }
        #sec::after {
            background: #ff0101;
        }
    }
    /* 刻度线 */
    .list {
        position: absolute;
        left: 450px;
        top: 72px;
        height: 895px;
        list-style: none;
        /* counter-reset: num -2; */
        /* counter-reset: num  -1; */
        width: 100px;
        padding-inline-start: 0px;
        display: flex;
        justify-content: space-between;
        flex-direction: column;
    }
    .list1 {
        left: 370px;
    }
    .list2 {
        left: 290px;
    }
    .list3 {
        left: 190px;
    }
    .list3 {
        left: 170px;
    }
    .list4 {
        left: 60px;
    }
    .list>li {
        width: 50px;
        height: 2px;
        background: #000000;
        color: #000000;
        position: relative;
    }
    /* #list>li:before {
            /* counter-increment: num 2; */
    /* counter-increment: num 1; */
    /* content: counter(num); */
    /* position: absolute;
            top: 5px;
            left: -4px;
        } */
    /*************************倒计时**************************************/
    .time22 {
        position: absolute;
        left: 40%;
        top: 30%;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    #time {
        display: flex;
        gap: 10px;
        .circle {
            position: relative;
            width: 150px;
            height: 150px;
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            &::before {
                content: '';
                position: absolute;
                border-radius: 50%;
                inset: 0;
                border: 10px solid #000000;
                background-image: linear-gradient(to top left,
                        rgba(0, 0, 0, 0.2),
                        rgba(0, 0, 0, 0.2) 30%,
                        rgba(0, 0, 0, 0));
                box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
                    inset -4px -4px 5px rgba(0, 0, 0, 0.6);
                border: 0px solid black;
            }
            &::after {
                content: '';
                position: absolute;
                width: 100px;
                height: 100px;
                border-radius: 50%;
                background: #05a388;
                box-shadow: inset -2px -2px 3px rgba(255, 255, 255, 0.6),
                    inset 2px 2px 3px rgba(0, 0, 0, 0.6);
            }
            & svg {
                width: 150px;
                height: 150px;
                position: relative;
                transform: rotate(270deg);
                & circle {
                    width: 100%;
                    height: 100%;
                    fill: transparent;
                    stroke-width: 8;
                    stroke: var(--clr);
                    stroke-linecap: round;
                    transform: translate(5px, 5px);
                    stroke-dasharray: 440;
                    stroke-dashoffset: 440;
                }
            }
        }
        & div {
            width: 100px;
            height: 100px;
            border-radius: 50%;
            position: absolute;
            text-align: center;
            font-weight: 500;
            text-shadow: 1px 1px 1px #0c0909;
            z-index: 5;
            color: var(--clr);
            font-size: 40px;
            line-height: 1.2;
            box-shadow: 1px 1px 10px rgb(82, 230, 56),
                2px 2px 20px rgb(192, 230, 56),
                4px 4px 40px rgb(230, 210, 56),
                6px 6px 80px rgb(230, 178, 56),
                8px 8px 160px rgb(230, 82, 56);
        }
    }
    .newYear {
        position: absolute;
        font-size: 90px;
        color: #fff;
        text-shadow: 1px 1px 1px #0c0909;
        left: 80px;
        top: -120px;
        text-shadow: 0px 1px 0px #999,
            0px 2px 0px #888,
            0px 3px 0px #777,
            0px 4px 0px #666,
            0px 5px 0px #555,
            0px 6px 0px #444,
            0px 7px 0px #333,
            0px 8px 7px #001135;
    }
</style>
<body>
    <a href="file:///C:\Users\90917\Desktop\备忘录.html" class="home_page">首页</a>
    <!-- ------------------------时钟----------------------------- -->
    <div class="times">
        <div id="year">
            nan
        </div>
        <div class="main">
            <span id="month"></span><span class="wai">月</span>
            <span id="day"></span><span class="wai">日</span>
            <span id="hour"></span><span class="wan">:</span>
            <span id="min"></span><span class="wan">:</span>
            <span id="sec"></span>
        </div>
        <div class="time22">
            <div id="time">
                <div class="circle" style="--clr:#1bffd9;">
                    <svg>
                        <circle cx="70" cy="70" r="70" id="dd"></circle>
                    </svg>
                    <div id="days">00<br>天</div>
                </div>
                <div class="circle" style="--clr:#15fd00;">
                    <svg>
                        <circle cx="70" cy="70" r="70" id="hh"></circle>
                    </svg>
                    <div id="hours">00<br>时</div>
                </div>
                <div class="circle" style="--clr:#f8ff2a;">
                    <svg>
                        <circle cx="70" cy="70" r="70" id="mm"></circle>
                    </svg>
                    <div id="minutes">00<br>分</div>
                </div>
                <div class="circle" style="--clr:#ff0303;">
                    <svg>
                        <circle cx="70" cy="70" r="70" id="ss"></circle>
                    </svg>
                    <div id="seconds">00<br>秒</div>
                </div>
            </div>
            <h2 class="newYear">五一倒计时</h2>
        </div>
    </div>
    <!-- 刻度线: -->
    <div class="rile">
        <ul class="list">
            <li>60</li>
            <li>59</li>
            <li>58</li>
            <li>57</li>
            <li>56</li>
            <li>55</li>
            <li>54</li>
            <li>53</li>
            <li>52</li>
            <li>51</li>
            <li>50</li>
            <li>49</li>
            <li>48</li>
            <li>47</li>
            <li>46</li>
            <li>45</li>
            <li>44</li>
            <li>43</li>
            <li>42</li>
            <li>41</li>
            <li>40</li>
            <li>39</li>
            <li>38</li>
            <li>37</li>
            <li>36</li>
            <li>35</li>
            <li>34</li>
            <li>33</li>
            <li>32</li>
            <li>31</li>
            <li>30</li>
            <li>29</li>
            <li>28</li>
            <li>27</li>
            <li>26</li>
            <li>25</li>
            <li>24</li>
            <li>23</li>
            <li>22</li>
            <li>21</li>
            <li>20</li>
            <li>19</li>
            <li>18</li>
            <li>17</li>
            <li>16</li>
            <li>15</li>
            <li>14</li>
            <li>13</li>
            <li>12</li>
            <li>11</li>
            <li>10</li>
            <li>09</li>
            <li>08</li>
            <li>07</li>
            <li>06</li>
            <li>05</li>
            <li>04</li>
            <li>03</li>
            <li>02</li>
            <li>01</li>
            <li></li>
        </ul>
        <ul class="list list1">
            <li>60</li>
            <li>59</li>
            <li>58</li>
            <li>57</li>
            <li>56</li>
            <li>55</li>
            <li>54</li>
            <li>53</li>
            <li>52</li>
            <li>51</li>
            <li>50</li>
            <li>49</li>
            <li>48</li>
            <li>47</li>
            <li>46</li>
            <li>45</li>
            <li>44</li>
            <li>43</li>
            <li>42</li>
            <li>41</li>
            <li>40</li>
            <li>39</li>
            <li>38</li>
            <li>37</li>
            <li>36</li>
            <li>35</li>
            <li>34</li>
            <li>33</li>
            <li>32</li>
            <li>31</li>
            <li>30</li>
            <li>29</li>
            <li>28</li>
            <li>27</li>
            <li>26</li>
            <li>25</li>
            <li>24</li>
            <li>23</li>
            <li>22</li>
            <li>21</li>
            <li>20</li>
            <li>19</li>
            <li>18</li>
            <li>17</li>
            <li>16</li>
            <li>15</li>
            <li>14</li>
            <li>13</li>
            <li>12</li>
            <li>11</li>
            <li>10</li>
            <li>09</li>
            <li>08</li>
            <li>07</li>
            <li>06</li>
            <li>05</li>
            <li>04</li>
            <li>03</li>
            <li>02</li>
            <li>01</li>
            <li></li>
        </ul>
        <ul class="list list2">
            <li>00</li>
            <li>23</li>
            <li>22</li>
            <li>21</li>
            <li>20</li>
            <li>19</li>
            <li>18</li>
            <li>17</li>
            <li>16</li>
            <li>15</li>
            <li>14</li>
            <li>13</li>
            <li>12</li>
            <li>11</li>
            <li>10</li>
            <li>09</li>
            <li>08</li>
            <li>07</li>
            <li>06</li>
            <li>05</li>
            <li>04</li>
            <li>03</li>
            <li>02</li>
            <li>01</li>
            <li></li>
        </ul>
        <ul class="list list3">
            <li>30</li>
            <li>29</li>
            <li>28</li>
            <li>27</li>
            <li>26</li>
            <li>25</li>
            <li>24</li>
            <li>23</li>
            <li>22</li>
            <li>21</li>
            <li>20</li>
            <li>19</li>
            <li>18</li>
            <li>17</li>
            <li>16</li>
            <li>15</li>
            <li>14</li>
            <li>13</li>
            <li>12</li>
            <li>11</li>
            <li>10</li>
            <li>09</li>
            <li>08</li>
            <li>07</li>
            <li>06</li>
            <li>05</li>
            <li>04</li>
            <li>03</li>
            <li>02</li>
            <li>01</li>
            <li></li>
        </ul>
        <ul class="list list4">
            <li></li>
            <li>12</li>
            <li>11</li>
            <li>10</li>
            <li>09</li>
            <li>08</li>
            <li>07</li>
            <li>06</li>
            <li>05</li>
            <li>04</li>
            <li>03</li>
            <li>02</li>
            <li>01</li>
        </ul>
    </div>
    <script>
        /*************************现在时间*******************************/
        var monbox = document.getElementById("month")
        var daybox = document.getElementById("day")
        var hourbox = document.getElementById("hour")
        var minbox = document.getElementById("min")
        var secbox = document.getElementById("sec")
        var yeardiv = document.getElementById("year")
        var count = 0
        function clock() {
            var d = new Date()
            var mon = d.getMonth()
            var day = d.getDate()
            var hour = d.getHours()
            var min = d.getMinutes()
            var sec = d.getSeconds()
            var year = d.getFullYear()
            var W = "星期" + "日一二三四五六".charAt(new Date().getDay());
            monbox.style.setProperty('--s', String(mon / 12 * 100) + '%') //生成填充背景颜色的比例
            monbox.setAttribute('datatext', ("0" + (mon + 1)).slice(-2)) //生成时间日期的具体文字,个位的数字在前面补0
            var allday = new Date(year, mon + 1, 0).getDate() //计算当前月份有多少天(28,29,30,31)
            daybox.style.setProperty('--s', String(day / allday * 100) + '%')
            daybox.setAttribute('datatext', ("0" + (day)).slice(-2))
            hourbox.style.setProperty('--s', String(hour / 24 * 100) + '%')
            hourbox.setAttribute('datatext', ("0" + (hour)).slice(-2))
            minbox.style.setProperty('--s', String(min / 60 * 100) + '%')
            minbox.setAttribute('datatext', ("0" + (min)).slice(-2))
            secbox.style.setProperty('--s', String(sec / 60 * 100) + '%')
            secbox.setAttribute('datatext', ("0" + (sec)).slice(-2))
            yeardiv.innerText = year + '(' + W + ')'// 计算年份数字
        }
        setInterval(clock, 100)
        /*************************倒计时**************************************/
        let days = document.getElementById('days');
        let hours = document.getElementById('hours');
        let minutes = document.getElementById('minutes');
        let seconds = document.getElementById('seconds');
        let dd = document.getElementById('dd');
        let hh = document.getElementById('hh');
        let mm = document.getElementById('mm');
        let ss = document.getElementById('ss');
        let enDate = '05/1/2024 00:00:00';
        let x = setInterval(function () {
            let now = new Date(enDate).getTime();
            let countDown = new Date().getTime();
            let distance = now - countDown;
            let d = Math.floor(distance / (1000 * 60 * 60 * 24));
            let h = Math.floor(distance % (1000 * 60 * 60 * 24) / (1000 * 60 * 60));
            let m = Math.floor(distance % (1000 * 60 * 60) / (1000 * 60));
            let s = Math.floor(distance % (1000 * 60) / 1000);
            d = d < 10 ? "0" + d : d
            h = h < 10 ? "0" + h : h;
            m = m < 10 ? "0" + m : m;
            s = s < 10 ? "0" + s : s;
            days.innerHTML = d + '<br><span>天</span>';
            hours.innerHTML = h + '<br><span>时</span>';
            minutes.innerHTML = m + '<br><span>分</span>';
            seconds.innerHTML = s + '<br><span>秒</span>';
            dd.style.strokeDashoffset = 440 - (440 * d) / 365;
            hh.style.strokeDashoffset = 440 - (440 * h) / 24; // 24
            mm.style.strokeDashoffset = 440 - (440 * m) / 60; // 60
            ss.style.strokeDashoffset = 440 - (440 * s) / 60; // 60
        })
    </script>
</html>

转载请注明出处或者链接地址:https://www.qianduange.cn//article/13856.html
标签
评论
发布的文章

html左右两栏布局实现

2024-08-04 00:08:50

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!