首页 > 其他分享 >网页时钟

网页时钟

时间:2024-10-10 09:59:34浏览次数:6  
标签:网页 color 50% mode background night const 时钟

效果如下:

代码如下:

<!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 {
      position: relative;
      width: 200px;
      height: 200px;
      /*将正方形变为圆形*/
      border-radius: 50%;
      background-color: white;
      border: 1px solid black;
      /*添加阴影*/
      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; // 总共360度,一圈是12个小时,那么一个小时30度
    const minuteDeg = (minutes + seconds / 60) * 6; // 总共360度,一圈是60分钟,那么一分钟6度
    const secondDeg = seconds * 6; // 总共360度,一圈是60秒,那么一秒钟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');的时候,当前元素body有'night-mode'这个类名时删除这个类名,反之没有这个类名则添加这个类名到classList的后面
    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); // 1000毫秒,即1s钟执行一次
  // updateClock(); // 立即更新一次,避免延迟
  // 监听单击事件,即单击就切换模式
  document.querySelector('.mode-switch').addEventListener('click', toggleMode);
</script>
</body>
</html>

 

标签:网页,color,50%,mode,background,night,const,时钟
From: https://www.cnblogs.com/zwh0910/p/18455738

相关文章

  • 打开网页显示数据库连接出错
    当打开网页时出现“数据库连接出错”的提示,这通常意味着网站后端尝试与数据库建立连接时遇到了问题。这类问题可能由以下几个原因造成:数据库服务器未启动:确保数据库服务正在运行。可以通过命令行工具或者管理界面检查数据库服务的状态。网络问题:检查数据库服务器和应用服务......
  • 网页设计模板怎么使用-如何去修改呢?
    使用和修改网页设计模板通常涉及以下几个步骤:选择合适的模板:根据你的网站需求选择一个适合的设计模板。下载或安装模板:从模板提供商处下载模板文件,并按照说明将其安装到你的网站系统中。了解模板结构:通过查看模板的HTML、CSS和JavaScript文件来理解其基本结构和样式设置。修......
  • 自己如何制作一个网页
    制作一个网页可以从简单的HTML开始,逐步添加CSS和JavaScript来丰富页面的功能和外观。下面是一些基本步骤:1.设计网页结构确定目的:明确你的网页想要传达的信息或提供的功能。草图设计:在纸上或使用设计工具画出网页的基本布局。2.编写HTML代码创建基础结构:使用文本编辑器(如......
  • 前端网页工作原理
    1.简要介绍        先安装好Ngnix或者Apache,接着把写好的网页文件放到指定目录,然后在浏览器中输入网址就可以打开网页了。        至于网页文件一般只有三种:html(骨架)、css(设置样式,大小、颜色、位置等)、javascript文件一般是处理交互或者与后端通信的......
  • BeEF 网页钓鱼平台
    BeEF网页钓鱼平台BeEF介绍BeEF全称TheBrowerExploitationFrameWork是一款针对浏览器的浏览器渗透测试工具,使用Ruby语言开发的用于实现对XSS漏洞的攻击和利用BeEF主要是往网页中插入一段名为hook.js的JS脚本代码,如果浏览器访问了有hook.js(钩子)的页面就会被......
  • web网页制作(Radio Shack)
    <!doctypehtml>BootstrapdemoRadioShackStoreLocatorSteve'sWorkbenchRadioShackServicesElectronicRepairAboutRadioShackProductSupportRockandRollOnTourUnitedAgainstCrime......
  • 传奇霸业网页游戏单机版安装教程+GM后台+无需虚拟机
    今天给大家带来一款单机游戏的架设:传奇霸业网页游戏。另外:本人承接各种游戏架设(单机+联网)本人为了学习和研究软件内含的设计思想和原理,带了架设教程仅供娱乐。教程是本人亲自搭建成功的,绝对是完整可运行的,踩过的坑都给你们填上了。如果你是小白也没问题,跟着教程走也是可以搭建成......
  • 数据库mysql链接网页打不开 mysql数据库连接失败的原因
    MySQL数据库连接失败可能有以下几个常见原因:网络问题:服务器与客户端之间的网络不通。MySQL服务所在的服务器防火墙设置阻止了外部访问。MySQL服务未启动:确认MySQL服务是否已经正常启动。配置错误:连接字符串中的主机名、端口、用户名或密码错误。配置文件(my.cn......
  • 如何修改php网页内容
    要修改PHP网页的内容,你可以按照以下步骤进行:打开文件:使用文本编辑器或集成开发环境(IDE)如VSCode,PhpStorm等打开包含你要修改内容的PHP文件。定位内容:在文件中找到你想要修改的具体内容。PHP文件通常包含HTML标记以及PHP代码块。确保你清楚哪些部分是HTML,哪些是动态生成的......
  • 网页跳转小程序
    在现今的互联网时代,用户的在线体验对产品和服务的成功至关重要。随着微信、支付宝等移动应用的普及,小程序逐渐成为用户与服务之间的新型连接方式。小程序(MiniPrograms)作为一种轻量级的应用,不需要用户下载安装,而是通过一个易于访问的入口提供各种功能。这种便捷的特性,使得小程......