HTML+CSS科技感时钟(附源码!!!)

预览效果

源码(直接复制使用)

html 复制代码
<!DOCTYPE html>
<html lang="zh-Hans">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>科技感时钟</title>
    <style>
        :root {
            --color2: #f67280;
            --color4: #c06c84;
            --color6: #6c5b7b;
        }

        * {
            margin: 0;
            padding: 0;
        }

        html {
            font-size: 14px;
        }

        body {
            width: 100vw;
            height: 100vh;
            background-color: #000;
            display: flex;
            justify-content: center;
            align-items: center;
            font-family: 'Montserrat', sans-serif, Arial, 'Microsoft Yahei';
        }

        .clock-container {
            position: relative;
            width: 380px;
            height: 80px;
            border-radius: 10px;
            background-image: linear-gradient(135deg, var(--color2), var(--color4), var(--color6));
            display: flex;
            justify-content: center;
            align-items: center;
            animation: animate 4s linear infinite;
        }

        .clock-container::after,
        .clock-container::before {
            position: absolute;
            content: "";
            background-image: inherit;
            width: 100%;
            height: 100%;
            z-index: -1;
            border-radius: 10px;
            filter: blur(15px);
        }

        .clock-container::before {
            filter: blur(100px);
        }

        .clock-display {
            position: absolute;
            left: 10px;
            right: 10px;
            top: 10px;
            bottom: 10px;
            background-color: #2b2a2a;
            border-radius: 8px;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .clock-display p {
            font-size: 50px;
            font-weight: bold;
            color: transparent;
            letter-spacing: 2px;
            background-image: linear-gradient(135deg, var(--color2), var(--color4), var(--color6));
            background-clip: text;
            -webkit-background-clip: text;
        }

        @keyframes animate {
            100% {
                filter: hue-rotate(360deg);
            }
        }
    </style>
</head>

<body>
    <div class="clock-container">
        <div class="clock-display">
            <p id="time"></p>
        </div>
    </div>
    <script>
        const timeEl = document.querySelector("#time");

        function updateTime(timeEl) {
            const date = new Date();
            let h = date.getHours();
            let m = date.getMinutes();
            let s = date.getSeconds();
            const dayNight = h >= 12 ? "PM" : "AM";

            h = h % 12 || 12;

            h = h < 10 ? "0" + h : h;
            m = m < 10 ? "0" + m : m;
            s = s < 10 ? "0" + s : s;

            timeEl.textContent = `${h}:${m}:${s} ${dayNight}`;
        }

        setInterval(() => {
            updateTime(timeEl);
        }, 1000);
    </script>
</body>

</html>

JavaScript逻辑代码的解释

  • const timeEl = document.querySelector("#time"); 获取显示时间的 p标签元素。

  • function updateTime(timeEl) 定义更新时间的函数。

    • const date = new Date(); 创建一个新的 Date 对象。

    • let h = date.getHours(); 获取当前小时。

    • let m = date.getMinutes(); 获取当前分钟。

    • let s = date.getSeconds(); 获取当前秒。

    • const dayNight = h >= 12 ? "PM" : "AM"; 判断是上午还是下午。

    • h = h % 12 || 12; 将小时转换为 12 小时制。

    • h = h < 10 ? "0" + h : h; 如果小时小于 10,前面补零。

    • m = m < 10 ? "0" + m : m; 如果分钟小于 10,前面补零。

    • s = s < 10 ? "0" + s : s; 如果秒小于 10,前面补零。

    • timeEl.textContent = h : {h}: h:{m}😒{s} ${dayNight}; 更新时间显示。

    • timeEl.textContent = h : {h}: h:{m}😒{s} ${dayNight}; 更新时间显示。

    • setInterval(() => { updateTime(timeEl); }, 1000); 每秒调用一次 updateTime 函数,更新时间。

还有什么不懂的欢迎大家留言!

欢迎小白新手加群交流

相关推荐
初遇你时动了情4 小时前
css中backdrop-filter 详细使用 ios毛玻璃效果、filter和backdrop-filter使用说明
前端·css
景彡先生5 小时前
Python Selenium详解:从入门到实战,Web自动化的“瑞士军刀”
前端·python·selenium
Liudef066 小时前
DeepseekV3.2 实现构建简易版Wiki系统:从零开始的HTML实现
前端·javascript·人工智能·html
景早8 小时前
vue 记事本案例详解
前端·javascript·vue.js
wangjialelele9 小时前
Qt中的常用组件:QWidget篇
开发语言·前端·c++·qt
乔冠宇9 小时前
vue需要学习的点
前端·vue.js·学习
用户47949283569159 小时前
同样是 #,锚点和路由有什么区别
前端·javascript
Hero_112710 小时前
在pycharm中install不上需要的包
服务器·前端·pycharm
爱上妖精的尾巴10 小时前
5-26 WPS JS宏数组元素添加删除应用
开发语言·前端·javascript·wps·js宏
是谁眉眼10 小时前
wpsapi
前端·javascript·html