js 简单圆盘时钟

2023-11-06 09:31
文章标签 简单 时钟 js 圆盘

本文主要是介绍js 简单圆盘时钟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实现一个简单的圆盘时钟

预览图:

在这里插入图片描述

代码:

css:

<style>.disc {position: relative;margin: 200px auto;width: 300px;height: 300px;border: 1px solid #000;border-radius: 50%;}.axis {position: absolute;top: 150px;left: 150px;transform: translate(-50%, -50%);width: 10px;height: 10px;border-radius: 50%;background-color: #000;}.hourHand {position: absolute;top: 150px;left: 147px;width: 6px;height: 80px;background-color: #000;transform-origin: 3px 0;}.minuteHand {position: absolute;top: 150px;left: 148px;width: 4px;height: 110px;background-color: #000;transform-origin: 2px 0;}.secondHand {position: absolute;top: 150px;left: 149px;width: 2px;height: 130px;background-color: #000;transform-origin: 1px 0;}.scale {position: absolute;top: 0;left: 150px;transform-origin: 2.5px 150px;width: 2px;height: 5px;background-color: #000;}.num {position: absolute;top: 15px;left: 150px;width: 20px;height: 20px;color: 16px;text-align: center;line-height: 20px;transform-origin: 50% 135px;}.num span {display: block;transform-origin: 50% 50%;}</style>

html:

	 <div class="disc"><div class="axis"></div><div class="hourHand"></div><div class="minuteHand"></div><div class="secondHand"></div></div>

js:

	 // 获取元素var disc = document.getElementsByClassName('disc')[0];var hourHand = document.getElementsByClassName('hourHand')[0];var minuteHand = document.getElementsByClassName('minuteHand')[0];var secondHand = document.getElementsByClassName('secondHand')[0];var scale = document.getElementsByClassName('scale');// 生成刻度for (var i = 0; i < 60; i++) {var scale = document.createElement('div');scale.classList.add('scale');scale.style.transform = `translate(-50%) rotate(${i*6}deg)`;disc.appendChild(scale);scale.style.transform = `translate(-50%) rotate(${i*6}deg)`;if (i % 5 === 0) {scale.style.width = 4 + 'px';scale.style.height = 12 + 'px';}}// 生成数字for (var i = 0; i < 12; i++) {var num = document.createElement('div');var numx = document.createElement('span');num.classList.add('num');num.style.transform = `translate(-50%) rotate(${i*30+30}deg)`;numx.style.transform = `rotate(${-i*30-30}deg)`;numx.innerHTML = i + 1;disc.appendChild(num);num.appendChild(numx);}// 浏览器刚打开就显示,不会停顿var h = getTime().hours;h = h > 12 ? h - 12 : h;hourHand.style.transform = `rotate(${h*30-180+(getTime().minute*0.5)}deg)`;minuteHand.style.transform = `rotate(${getTime().minute*6-180}deg)`;secondHand.style.transform = `rotate(${getTime().second*6-180}deg)`;// 定时器,每过一秒执行一次setInterval(function() {var h = getTime().hours;h = h > 12 ? h - 12 : h;hourHand.style.transform = `rotate(${h*30-180+(getTime().minute*0.5)}deg)`;minuteHand.style.transform = `rotate(${getTime().minute*6-180}deg)`;secondHand.style.transform = `rotate(${getTime().second*6-180}deg)`;}, 1000)// 函数:获取时间function getTime() {var date = new Date();var year = date.getFullYear();var month = date.getMonth();month = month < 10 ? '0' + month : month;var day = date.getDate();day = day < 10 ? '0' + day : day;var week = date.getDay();var weeks = ['日', '一', '二', '三', '四', '五', '六'];var weekZn = weeks[week];var hou = date.getHours();hou = hou < 10 ? '0' + hou : hou;var min = date.getMinutes();min = min < 10 ? '0' + min : min;var sec = date.getSeconds();sec = sec < 10 ? '0' + sec : sec;return {year: year,month: month,day: day,week: weekZn,hours: hou,minute: min,second: sec}}

这篇关于js 简单圆盘时钟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/355807

相关文章

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

使用Vue.js报错:ReferenceError: “Vue is not defined“ 的原因与解决方案

《使用Vue.js报错:ReferenceError:“Vueisnotdefined“的原因与解决方案》在前端开发中,ReferenceError:Vueisnotdefined是一个常见... 目录一、错误描述二、错误成因分析三、解决方案1. 检查 vue.js 的引入方式2. 验证 npm 安装3.

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作