• 【前端】实现时钟网页


    【前端】实现时钟网页

    在这里插入图片描述
    在这里插入图片描述

    项目介绍

    时钟显示在网页中央,并且使网页能够切换白天和夜晚两种模式。搭建基本的html结构,动态得到实时的时,分,秒
    通过Date()函数获得。将得到的数字根据逻辑,绑定
    给各div结构,实行动态旋转。点击按钮,改变背景颜色
    给出最终的HTML代码。

    代码

    DOCTYPE html>
    <html lang="zh">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>现代风格时钟title>
        <style>
            body {
                display: flex;
                justify-content: center;
                align-items: center;
                height: 100vh;
                margin: 0;
                font-family: Arial, sans-serif;
                background-color: #f0f0f0;
                transition: background-color 0.5s;
            }
            .clock-container {
                display: flex;
                flex-direction: column;
                align-items: center;
            }
            .clock {
                width: 200px;
                height: 200px;
                border-radius: 50%;
                background-color: white;
                position: relative;
                box-shadow: 0 0 20px rgba(0,0,0,0.1);
            }
            .hand {
                position: absolute;
                bottom: 50%;
                left: 50%;
                transform-origin: 50% 100%;
                border-radius: 5px;
            }
            .hour {
                width: 4px;
                height: 50px;
                background-color: #333;
            }
            .minute {
                width: 3px;
                height: 70px;
                background-color: #666;
            }
            .second {
                width: 2px;
                height: 90px;
                background-color: #e74c3c;
            }
            .center {
                position: absolute;
                top: 50%;
                left: 50%;
                width: 10px;
                height: 10px;
                border-radius: 50%;
                background-color: #333;
                transform: translate(-50%, -50%);
            }
            .digital-time {
                font-size: 48px;
                margin-top: 20px;
                color: #333;
            }
            .mode-switch {
                margin-top: 20px;
                padding: 10px 20px;
                font-size: 16px;
                cursor: pointer;
                background-color: #333;
                color: white;
                border: none;
                border-radius: 5px;
                transition: background-color 0.3s;
            }
            .mode-switch:hover {
                background-color: #555;
            }
            .night-mode {
                background-color: #222;
            }
            .night-mode .clock {
                background-color: #333;
                box-shadow: 0 0 20px rgba(255,255,255,0.1);
            }
            .night-mode .hour, .night-mode .minute {
                background-color: #fff;
            }
            .night-mode .second {
                background-color: #e74c3c;
            }
            .night-mode .center {
                background-color: #fff;
            }
            .night-mode .digital-time {
                color: #fff;
            }
            .night-mode .mode-switch {
                background-color: #f0f0f0;
                color: #333;
            }
            .night-mode .mode-switch:hover {
                background-color: #ddd;
            }
        style>
    head>
    <body>
        <div class="clock-container">
            <div class="clock">
                <div class="hand hour">div>
                <div class="hand minute">div>
                <div class="hand second">div>
                <div class="center">div>
            div>
            <div class="digital-time">div>
            <button class="mode-switch">Dark modebutton>
        div>
    
        <script>
            function updateClock() {
                const now = new Date();
                const hours = now.getHours();
                const minutes = now.getMinutes();
                const seconds = now.getSeconds();
    
                const hourDeg = (hours % 12 + minutes / 60) * 30;
                const minuteDeg = (minutes + seconds / 60) * 6;
                const secondDeg = seconds * 6;
    
                document.querySelector('.hour').style.transform = `translateX(-50%) rotate(${hourDeg}deg)`;
                document.querySelector('.minute').style.transform = `translateX(-50%) rotate(${minuteDeg}deg)`;
                document.querySelector('.second').style.transform = `translateX(-50%) rotate(${secondDeg}deg)`;
    
                const digitalTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')} ${hours >= 12 ? 'PM' : 'AM'}`;
                document.querySelector('.digital-time').textContent = digitalTime;
            }
    
            function toggleMode() {
                document.body.classList.toggle('night-mode');
                const button = document.querySelector('.mode-switch');
                button.textContent = document.body.classList.contains('night-mode') ? 'Light mode' : 'Dark mode';
            }
    
            setInterval(updateClock, 1000);
            updateClock(); // 立即更新一次,避免延迟
    
            document.querySelector('.mode-switch').addEventListener('click', toggleMode);
        script>
    body>
    html>
    

    效果图

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    HTML按钮通过JS实现选中和取消
    元宇宙是否为噱头?若不是,什么是元宇宙?他的概念、技术、应用和影响是什么?
    《HelloGitHub》第 74 期
    MySQL学习笔记5
    动物园IP网络广播-基于IP局域网络的动物园背景音乐广播系统-动物园智能广播系统设计指南
    springboot结合@Validated全局异常捕捉
    HTML实现轮播图
    集美大学 - 2840 - 实验10 - 函数题
    含文档+PPT+源码等]精品微信小程序食堂订餐点餐项目+后台管理系统|前后分离VUE[包运行成功]微信小程序项目源码Java毕业设计
    Flutter:动画摘要
  • 原文地址:https://blog.csdn.net/m0_74120525/article/details/139996971