当前位置: 代码网 > it编程>编程语言>Javascript > 前端实现时钟网页的详细代码示例

前端实现时钟网页的详细代码示例

2024年10月28日 Javascript 我要评论
项目介绍时钟显示在网页中央,并且使网页能够切换白天和夜晚两种模式。搭建基本的html结构,动态得到实时的时,分,秒通过date()函数获得。将得到的数字根据逻辑,绑定给各div结构,实行动态旋转。点击

项目介绍

时钟显示在网页中央,并且使网页能够切换白天和夜晚两种模式。搭建基本的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 mode</button>
    </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>

效果图

总结 

到此这篇关于前端实现时钟网页的文章就介绍到这了,更多相关前端时钟网页内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com