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 相关文章推荐
JQuery 国际象棋棋盘 实现代码
Jun 26 Javascript
详解JS 比较两个Json对象的值是否相等的实例
Nov 20 Javascript
TypeScript 学习笔记之基本类型
Jun 19 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
Sep 13 Javascript
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
微信小程序 空白页重定向解决办法
Jun 27 Javascript
微信小程序点击控件修改样式实例详解
Jul 07 Javascript
ES6解构赋值实例详解
Oct 31 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
Feb 08 Javascript
微信小程序实现左侧滑动导航栏
Apr 08 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
Oct 22 Javascript
JS数组去重详情
Nov 07 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
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
python生成式的send()方法(详解)
2017/05/08 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
python实现数据写入excel表格
2018/03/25 Python
python 接口返回的json字符串实例
2018/03/27 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
Python使用Matlab命令过程解析
2020/06/04 Python
Python while true实现爬虫定时任务
2020/06/08 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
会计演讲稿范文
2014/05/23 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
天鹅湖观后感
2015/06/09 职场文书
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫