动态时钟实现

news2024/11/18 1:48:12

前端HTML+CSS3+JavaScript实现动态时钟

  • 一、实现思路概述
  • 二、源代码(包含HTML、CSS、JS)
  • 三、图片资源与效果截图
    • 1. 图片资源
    • 2. 效果截图

一、实现思路概述

 1. 通过HTML搭建基本时钟的页面结构(这里将时钟图片资源作为背景图)
 2. 将时钟背景和时/分/秒图片进行CSS位置居中放置
 3. 通过JS按以下步骤实现动态刷新时钟页面
 	- 获取时钟、时、分、秒标签
 	- 获取当前日期,并初始化时分秒变量
 	- 定义时钟的时、分、秒进位逻辑函数
 	- 初始化闹钟(设置时分秒指针旋转角度),显示闹钟
 	- 设置定时器间隔1秒刷新一次时、分、秒指针角度

二、源代码(包含HTML、CSS、JS)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数字时钟</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        #clock{
            width: 600px;
            height: 600px;
            margin: 50px auto;
            background-image: url("./images/clock.jpg");
            position: relative;
            display: none;
        }
        #hour, #minute, #second{
            width: 30px;
            height: 600px;
            position: absolute;
            left: 50%;
            margin-left: -15px;
        }
        #hour{
             background-image: url("./images/hour.png");
        }
        #minute{
            background-image: url("./images/minute.png");
        }
        #second{
            background-image: url("./images/second.png");

        }
    </style>
</head>
<body>
    <div id="clock">
        <div id="hour"></div>
        <div id="minute"></div>
        <div id="second"></div>
    </div>
    <script>
        var clock = document.getElementById('clock');
        var secondPointer = document.getElementById('second');
        var minutePointer = document.getElementById('minute');
        var hourPointer = document.getElementById('hour');
        var now = new Date();
        var second = now.getSeconds(), minute = now.getMinutes(), hour = now.getHours() % 12;
        var secondAngle = 0, minuteAngle = 0, hourAngle = 0;

        function setClock(){
            second += 1;
            if(second === 60){
                second = 0;
                minute += 1;
                if(minute === 60){
                    minute = 0;
                    hour += 1;
                    if(hour === 12){
                        hour = 0;
                    }
                }
            }
            secondAngle = second * 6;
            minuteAngle = minute * 6 + second / 60;
            hourAngle = hour * 30 + minute / 60 + second / 3600;

            secondPointer.style.transform = `rotate(${secondAngle}deg)`;
            minutePointer.style.transform = `rotate(${minuteAngle}deg)`;
            hourPointer.style.transform = `rotate(${hourAngle}deg)`;
        }
        // 初始化时钟
        setClock();
        clock.style.display = 'block';

        setInterval(setClock, 1000);
    </script>
</body>
</html>

三、图片资源与效果截图

1. 图片资源

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

2. 效果截图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1233811.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sui生态多家协议上线流动质押,兼顾收益与灵活性

在Sui上&#xff0c;流动质押协议允许DeFi用户质押SUI&#xff0c;并获得可交易或用于其他DeFi活动的流动质押标记token。这一过程绕过了传统质押中验证节点锁定token的问题。用户可以通过Sui的权益证明机制&#xff08;PoS&#xff09;确保网络的安全&#xff0c;同时参与生态…

艺术作品3D虚拟云展厅能让客户远程身临其境地欣赏美

艺术品由于货物昂贵、易碎且保存难度大&#xff0c;因此在艺术品售卖中极易受时空限制&#xff0c;艺术品三维云展平台在线制作是基于web端将艺术品的图文、模型及视频等资料进行上传搭配&#xff0c;构建一个线上艺术品3D虚拟展厅&#xff0c;为艺术家和观众提供了全新的展示和…

【MySQL】一些内置函数(时间函数、字符串函数、数学函数等,学会了有妙用)

内置函数 前言正式开始时间函数显示当前日期、时间、日期时间的日期计算相差多少天示例创建一张表&#xff0c;记录生日 留言表 字符串函数charsetconcatinstr(string, substring)ucase和lcaseleft(string, length)length求字符串长度replace(str, search_str, replace_str)tri…

2024年测试程序员必看系列之自动化测试框架

自动化测试框架概念 自动化测试框架是一个集成体系&#xff0c;这个体系中包含测试功能的函数库、测试数据源、测试对象以及可重用的模块。 框架&#xff08;framework&#xff09;是一个框子——指其约束性&#xff0c;也是一个架子——指其支撑性。是一个基本概念上的结构&…

如何优雅的避免空指针异常

文章目录 1.数据准备2.实战&#xff1a;获取用户所在的城市2.1.直接获取&#xff1b;容易出现空指针异常。2.2.使用if-else判断&#xff1b;避免了出现空指针的问题&#xff0c;但是代码结构层次嵌套多&#xff0c;不美观2.3.使用工具类美化一下if判断代码2.4.使用Optional解决…

如何用CHAT理解数理化?

问CHAT&#xff1a;扇形面积的概念&#xff0c;简单阐述一下。 CHAT回复&#xff1a; 扇形面积是指扇形这种二维几何图形所覆盖的区域大小。 扇形是一个圆的一部分&#xff0c;是由圆心出发的两条射线&#xff08;半径&#xff09;和这两条射线所夹角决定的圆周上的弧线所围成…

创建域名邮箱邮件地址的方法与步骤

如何创建域名邮箱邮件地址?使用Zoho Mail创建域名邮箱邮件地址的步骤简单易懂&#xff0c;操作便捷。从其他邮箱迁移到Zoho Mail的过程也相当顺畅&#xff0c;您可以轻松为所有员工创建具有企业邮箱域名的电子邮件地址。 步骤1&#xff1a;添加并验证您的域名 首先&#xff0c…

动态跳过测试用例

动态跳过测试用例 说明 我们可以通过指定环境变量来动态判断是否执行指定的测试用例设置环境变量有很多种方法&#xff0c;例如命令行方式&#xff0c;格式&#xff1a;--env keyval1,key2val2 &#xff0c;若需要指定多个环境变量则需要逗号来隔开&#xff0c;而不是空格 t…

麒麟信安与MatrixOne完成兼容互认

近日&#xff0c;超融合异构云原生数据库MatrixOne企业版软件V1.0完成了与欧拉开源操作系统&#xff08;openEuler简称“欧拉”&#xff09;、麒麟信安操作系统系列产品和虚拟化平台的相互兼容认证&#xff0c;通过了欧拉兼容性测评&#xff0c;获得了《openEuler技术测评证书》…

Latex中文论文模板A4双栏,适用课程论文

文章目录 说明实现效果1.引入库2.摘要3.参考文献4.中文伪代码 模板下载 说明 在写课程论文的时候用了latex&#xff0c;将模板整理在这里&#xff0c;里面还有一些没有完善的地方&#xff0c;如图注、表格等。 该模板的主要使用点是&#xff0c;包含了摘要、正文双栏格式、中…

运动器材经营配送小程序商城效果如何

运动是每天不可少的&#xff0c;公园、健身房随处可见健身的人&#xff0c;在家庭场景中也有不少人会购买运动器材直接运动&#xff0c;如哑铃、跑步机、单车等都有较高的需求&#xff0c;这对于运动器材经销商或品牌来说是生意增长的机会&#xff0c;由于价格不算很高&#xf…

ubuntu18.04安装并运行ORB-SLAM2

查看版本号 lsb_release -a 换源 Ubuntu系统自带的源都是国外的网址&#xff0c;国内用户在使用的时候下载比较慢甚至无法获取&#xff0c;需要替换成国内的镜像源 备份源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.old 打开文件 sudo gedit /etc/apt/so…

城市交通领域的新趋势:地铁列车可视化

随着城市化进程的不断加速&#xff0c;地铁作为一种便捷、快速的城市交通方式&#xff0c;受到了越来越多人的青睐。地铁列车可视化&#xff0c;作为地铁运营管理中的一项重要工作&#xff0c;不仅可以提高列车运行效率和安全性&#xff0c;还可以为乘客提供更加舒适、便捷的乘…

vue动态获取目录结构进行配置静态路由

文章目录 前言定义项目页面格式一、vite 配置动态路由新建 /router/utils.ts引入 /router/utils.ts 二、webpack 配置动态路由总结如有启发&#xff0c;可点赞收藏哟~ 前言 项目中动态配置路由可以减少路由配置时间&#xff0c;并可减少配置路由出现的一些奇奇怪怪的问题 路由…

nginx配置-超详细

背景 安装nginx之后&#xff0c;会自动生成很多的文件&#xff0c;但是nginx.conf这个文件是我们的核心&#xff0c;如何去正确的修改和优化它是nginx的核心。在配置之前&#xff0c;需要看懂它的配置。鉴于经常需要配置&#xff0c;再次记录一下 一、nginx的默认配置 #user …

数据库管理-第117期 拿下19c OCM(202301121)

数据库管理-第117期 拿下19c OCM&#xff08;202301121&#xff09; 经过漫长的等待&#xff0c;确切来说是过了整整六周&#xff0c;&#xff08;以前一般就3-4周出成绩&#xff0c;大多数是3周&#xff09;&#xff0c;而且这次是在OCP&#xff08;Oracle Certification Pro…

微信小程序面试题【100道】

文章目录 小程序面试题100问前言一、技术性问题1.有哪些参数传值的方法2.小程序修改数据值与Vue和React有什么差异3.如何实现下拉刷新与上拉加载4.bindtap和catchtap的区别是什么5.小程序有哪些导航API&#xff0c;它们各自的应用场景与差异区别是什么6.小程序中如何使用第三方…

如何使用 RTLS?

RTLS 的不同应用几乎是无限的。毕竟&#xff0c;几乎任何人都可以从更好地了解事物的实时变化中受益。位置数据的一般价值导致了各种各样的最终用途应用&#xff0c;从制造工作跟踪、库存管理、堆场管理、供应链和物流&#xff0c;到医疗保健、动物跟踪以及采矿和采矿业人员的安…

二百零五、Flume——数据流监控工具Ganglia单机版安装以及使用Ganglia监控Flume任务的数据流(附流程截图)

一、目的 Flume采集Kafka的数据流需要实时监控&#xff0c;这时就需要用到监控工具Ganglia 二、Ganglia简介 Ganglia 由 gmond、gmetad 和 gweb 三部分组成。 &#xff08;一&#xff09;第一部分&#xff1a;gmond gmond&#xff08;Ganglia Monitoring Daemon&#xff09;…

PHP中cookie与session使用指南

PHP中cookie与session使用指南 Cookie和session的出现&#xff0c;是为了解决http协议无状态交互的窘境&#xff0c;它们都用于存储客户端的相关信息 0x01 Cookie使用 简介 Cookie 是一种在客户端存储数据的机制&#xff0c;通常用于记录用户的状态和偏好。下面将介绍如何在…