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 函数,更新时间。

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

欢迎小白新手加群交流

相关推荐
用户2181697049301 小时前
Flutter(四)Dart语法 空安全 运算符 流程控制
前端
许彰午1 小时前
政务督办的分合模式:主办协办的并发审批
前端·javascript·政务
用户69371750013841 小时前
AI时代,程序员该往哪走?
前端·后端
ttwuai1 小时前
GoFrame 后台日志清空失败:无 WHERE 删除为什么被拦住
前端·golang
易筋紫容1 小时前
创建型模式:对象的诞生艺术
开发语言·前端·javascript
半句唐诗2 小时前
我是如何通过 Access Token 成功发布第一个 npm 包的
前端·npm·node.js
程序员黑豆2 小时前
鸿蒙应用开发:@Provider 与 @Consumer 跨组件双向同步详解
前端·harmonyos
paopaokaka_luck2 小时前
基于springboot3+vue3的智能文库平台(AI智能搜索、AI智能汇总、实时在线状态展示、多格式文档预览与富文本编辑、Echarts图形化分析)
前端·网络·spring boot·网络协议·echarts
牧艺2 小时前
cos-design PhotoAlbum:用 CSS 3D 做一个「能翻页」的实体相册
前端·css·交互设计
洪贺2 小时前
从原始采样到可缩放心电图:用 h5ECG 绘制自己的 ECG
前端