JS+CSS实现动态时钟


Posted in Javascript onFebruary 19, 2021

本文实例为大家分享了JS+CSS实现动态时钟的具体代码,供大家参考,具体内容如下

JS+CSS实现动态时钟

知识点总结:

document.querySelector()方法返回文档中匹配指定 CSS 选择器的一个元素。

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

HTML+js部分

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <link rel="stylesheet" href="shiying.css" >
 <title>Document</title>
</head>

<body>
 <div class="clock">
 <div class="hour">
 <div class="hr" id="hr"></div>
 </div>
 <div class="min">
 <div class="mn" id="mn"></div>
 </div>
 <div class="sec">
 <div class="sc" id="sc"></div>
 </div>
 </div>
 <script type="text/javascript">
 const deg = 6;
 const hr = document.querySelector('#hr');
 const mn = document.querySelector('#mn');
 const sc = document.querySelector('#sc');

 setInterval(() => {

 let day = new Date();
 let hh = day.getHours() * 30;
 let mm = day.getMinutes() * deg;
 let ss = day.getSeconds() * deg;

 hr.style.transform = `rotateZ(${(hh) + (mm / 12)}deg)`;
 mn.style.transform = `rotateZ(${mm}deg)`;
 sc.style.transform = `rotateZ(${ss}deg)`;
 })

 </script>
</body>

</html>

CSS部分

*{
 margin:0;
 padding:0;
 box-sizing: border-box;
}
body{
 display: flex;
 justify-content: center;
 align-items: center;
 min-height: 100vh;
 background: #091921;
}
.clock{
 width: 350px;
 height: 350px;
 display:flex;
 justify-content: center;
 align-items: center;
 background: url(1613462007944.png);
 background-size: cover;
 border:4px solid #091921;
 border-radius: 50%;
 box-shadow: 0 -15px 15px rgba(255,255,255,0.05),
 inset 0 -15px 15px rgba(255,255,255, 0.05),
 0 -15px 15px rgba(0,0,0,0.05),
 inset 0 -15px 15px rgba(0,0,0, 0.05);
}
.clock:before
{
 content:"";
 position: absolute;
 width: 15px;
 height: 15px;
 background: #fff;
 border-radius: 50%;
 z-index:10000;

}
.clock .hour,
.clock .min,
.clock .sec
{
 position: absolute;

}
.clock .hour, .hr{
 width: 160px;
 height: 160px;
}
.clock .min, .mn{
 width: 190px;
 height: 190px;
}
.clock .sec, .sc{
 width: 230px;
 height: 230px;
}
.hr, .mn, .sc{
 display: flex;
 justify-content: center;
 position: absolute;
 border-radius: 50%;
}
.hr:before{
 content:"";
 position: absolute;
 width: 8px;
 height: 80px;
 background: #ff105e;
 z-index: 10;
 border-radius: 6px 6px 0 0;
}
.mn:before{
 content:"";
 position: absolute;
 width: 4px;
 height: 90px;
 background: #fff;
 z-index: 11;
 border-radius: 6px 6px 0 0;
}
.sc:before{
 content:"";
 position: absolute;
 width: 4px;
 height: 150px;
 background: #fff;
 z-index:12;
 border-radius: 6px 6px 0 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
利用JS重写Cognos右键菜单的实现代码
Apr 11 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
Jun 20 Javascript
php的文件上传入门教程(实例讲解)
Apr 10 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
Feb 25 Javascript
使用javascript实现判断当前浏览器
Apr 14 Javascript
bootstrap fileinput 插件使用项目总结(经验)
Feb 22 Javascript
深入理解Vue2.x的虚拟DOM diff原理
Sep 27 Javascript
vue2单元测试环境搭建
May 24 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
Jul 26 Javascript
vue实现分页组件
Jun 16 Javascript
JS快速实现简单计算器
Apr 08 Javascript
Vue路由权限控制解析
Nov 09 Javascript
js动态添加带圆圈序号列表的实例代码
Feb 18 #Javascript
原生微信小程序开发中 redux 的使用详解
Feb 18 #Javascript
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 #Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 #Vue.js
Vue如何实现变量表达式选择器
Feb 18 #Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 #Vue.js
JavaScript实现手风琴效果
Feb 18 #Javascript
You might like
PHP正确解析UTF-8字符串技巧应用
2012/11/07 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
Python批量修改文本文件内容的方法
2016/04/29 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
python 自定义对象的打印方法
2019/01/12 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
Python gevent协程切换实现详解
2020/09/14 Python
Python timeit模块原理及使用方法
2020/10/10 Python
使用Python提取文本中含有特定字符串的方法示例
2020/12/09 Python
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
酒店实习个人鉴定
2013/12/07 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
门面房租房协议书
2014/08/20 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技