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和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放