当前位置: 首页 > article >正文

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

预览效果

源码(直接复制使用)

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

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

欢迎小白新手加群交流


http://www.kler.cn/a/379411.html

相关文章:

  • 模型 海勒姆法则(用户依赖你未承诺的API功能)
  • PHP JSON 教程
  • Claude 3.5 Sonnet模型新增了PDF支持功能
  • WEB防护
  • 【HarmonyOS】引导用户跳转APP设置详情页开启权限
  • WPF+MVVM案例实战(二十一)- 制作一个侧边弹窗栏(CD类)
  • 浅谈vuex和pinia的区别
  • 什么是虚拟dom,如何实现一个虚拟dom
  • 硅谷甄选(10)用户管理
  • HTML5 + CSS3 + JavaScript 编程语言学习教程
  • Rust编程中的浮点数比较
  • Spring Boot 3.x 整合 Druid 数据库连接池(含密码加密)
  • Docker安装MySQL8.0
  • LeetCode 热题100 之 回溯1
  • 已解决:VS2022一直显示编译中但无法运行的情况
  • 贝叶斯+PINN!双重热点buff叠加,轻松斩获Nature子刊!
  • 人工智能技术的演变与未来:前景、挑战与应对
  • Lobe Chat:你的私人AI助理
  • Kimi出考题,考题提示词Prompt附上,培训机构试题、期中考试、人事入职试题全搞定
  • Three.js基础入门笔记
  • Centos安装ZooKeeper教程(单机版)
  • DBA之路,始于足下
  • I2S、PDM、PCM、TDM、DSM、DCODEC、VAD、SPDIF
  • 损失函数1
  • 「实战应用」如何在 DHTMLX Scheduler 中实现动态主题切换?
  • SpringBoot day 1104