JS代码+CSS样式实现一个动态时钟效果
Admin 2021-04-13 群英技术资讯 1268 次浏览
时钟是我们查看时间的一种工具,很多人家家里都会摆放一个时钟,那么我们用代码能实现一个时钟效果吗?答案是可以用的,这篇文章主要教大家用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; }
以上就是用JS+CSS实现动态时钟的示例 ,上文有详细的代码,对大家学习是一定的参考价值的,有学习需要的朋友可以自己参考上述代码来实现一个酷炫的时钟效果。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
我们在做后台管理系统时,经常有根据不同权限添加不同路由的需求。对于一些新手老说,比较容易容易遇到的问题就是,动态添加的路由页面在刷新出现时失效的情况。那么这时网页刷新出现404是什么原因呢?我们要如何解决?
这篇文章我们来了解jQuery中元素增加属性值的方法,给元素增加属性值是JavaScript学习中比较基础的内容,在jQuery中可以利用attr()方法来实现,下面我们来详细的了解看看怎样做,有需要的朋友可以参考。
这篇文章主要介绍了JavaScript中的语法和代码结构,对JS初学者而言,这些基础一定要看一下
众所周知,一般界面很多情况涉及到树列表的处理,如类型展示,如果是一层的,可以用下拉列表代替,如果是多个层级的,采用树控件展示会更加直观。
本文主要介绍了vue实现列表拖拽排序的示例代码,具体如下:template div class=test_wrapper @dragover=dragover($event) transition-group class=transition-wrapper name=sort div v-for=(
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008