目的:
利用html5,css实现钟摆效果
知识点:
1) 利用position/left/top和calc()实现元素的水平和垂直居中;
2) 利用CSS3的animation/transform/transform-origin属性定义动画;
3) 利用transform-origin实现旋转原点的圆心调整
废话不多说了,直接看代码吧,具体代码如下所示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> li{ list-style:none; } #box{ width: 400px; height: 400px; position: absolute; top:calc(50% - 200px); left:calc(50% - 200px); border: 2px solid palegoldenrod; } #dial{ width: 200px; height: 200px; position: absolute; top:calc(50% - 100px); left:calc(50% - 100px); border: 2px solid cyan; border-radius: 50%; } .scaleIndex{ width: 4px; height: 12px; position: absolute; top: 0; left: calc(50% - 2px); background-color: gray; transform-origin: 2px 100px; } .angle30{transform : rotate(30deg);} .angle60{transform : rotate(60deg);} .angle90{transform : rotate(90deg);} .angle120{transform : rotate(120deg);} .angle150{transform : rotate(150deg);} .angle180{transform : rotate(180deg);} .angle210{transform : rotate(210deg);} .angle240{transform : rotate(240deg);} .angle270{transform : rotate(270deg);} .angle300{transform : rotate(300deg);} .angle330{transform : rotate(330deg);} #fixPoint{ width: 10px; height: 10px; position: absolute; top:calc(50% - 5px); left:calc(50% - 5px); background-color: cadetblue; border-radius: 50%; } #hourHand{ width: 6px; height: 70px; position:absolute; top: 40px; left: calc(50% - 3px); background-color: darkblue; transform-origin: 50% 60px; } #minuteHand{ width: 4px; height: 75px; position:absolute; top: 35px; left: calc(50% - 2px); background-color: yellow; transform-origin: 50% 65px; } #secondHand{ width: 2px; height: 90px; position:absolute; top: 20px; left: calc(50% - 1px); background-color: red; transform-origin: 50% 80px; } </style> </head> <body> <div id = "box"> <div id = 'dial'> <ul id = "scale"> <li class = "scaleIndex"></li> <li class = "scaleIndex angle30"></li> <li class = "scaleIndex angle60"></li> <li class = "scaleIndex angle90"></li> <li class = "scaleIndex angle120"></li> <li class = "scaleIndex angle150"></li> <li class = "scaleIndex angle180"></li> <li class = "scaleIndex angle210"></li> <li class = "scaleIndex angle240"></li> <li class = "scaleIndex angle270"></li> <li class = "scaleIndex angle300"></li> <li class = "scaleIndex angle330"></li> </ul> <div id = "fixPoint"></div> <div id = "hourHand"></div> <div id = "minuteHand"></div> <div id = "secondHand"></div> </div> </div> <script type = 'text/javascript' src = 'js/jquery-3.2.1.js'></script> <script type = "text/javascript"> window.onload = function(){ var hourHand = document.getElementById('hourHand'); var minuteHand = document.getElementById('minuteHand'); var secondHand = document.getElementById('secondHand'); setInterval(function(){ var currentTime = new Date(); var hourValue = currentTime.getHours(); var hourAngle = hourValue / 24 * 360 + 'deg'; var minuteValue = currentTime.getMinutes(); var minuteAngle = minuteValue / 60 * 360 + 'deg'; var secondValue = currentTime.getSeconds(); var secondAngle = secondValue / 60 * 360 + 'deg'; console.log(hourAngle); // 方法一:利用jquery的css()增加属性 var cmdHour = 'rotate('+ hourAngle +')'; $('#hourHand').css({transform:'rotate('+ hourAngle +')'}); var cmdMinute = 'rotate('+ minuteAngle +')'; $('#minuteHand').css({transform:cmdMinute}); var cmdSecond = 'rotate('+ secondAngle +')'; $('#secondHand').css({transform:cmdSecond}); // 方法二:利用DOM元素的style属性设置 // hourHand.style.transform = 'rotate('+ hourAngle + ')'; // minuteHand.style.transform = 'rotate('+ minuteAngle + ')'; // secondHand.style.transform = 'rotate('+ secondAngle + ')'; },1000); } </script> </body> </html>
总结
以上所述是小编给大家介绍的基于HTML5+CSS3实现简单的时钟效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月14日
2024年11月14日
- 任天堂宣布推出音乐APP!仅面向NSO订阅用户
- 《马路RPG:兄弟齐航》新预告!兄弟携手海岛冒险
- 王子鸣.2009-永远【九洲】【WAV分轨】
- 杭天琪.2002-水与火的缠绵【泰达】【WAV+CUE】
- 邱锋泽.2024-COlOR.Free【发现梦想】【FLAC分轨】
- 群星 《10年朋友Vol.8》滚石台湾版[WAV+CUE][1.G]
- 群星《2024好听新歌31》十倍音质 U盘音乐 [WAV分轨][1.1G]
- 群星《全天后》华纳[WAV+CUE][1.1G]
- 许乐《声愿HQCD》[正版原抓WAV+CUE]
- 黄凯芹《给你留念》头版限量编号MQA-UHQCD2024[低速原抓WAV+CUE]
- 黑鸭子2008-今生最爱[首版][WAV+CUE]
- 彭海桐.2000-好好想想你【SONY】【WAV+CUE】
- 群星.1995-亚洲电视剧集主题曲大全·乐作剧2CD【滚石】【WAV+CUE】
- 林强.1992-春风少年兄【魔岩】【WAV+CUE】
- 世界顶级汽车音响试音王《金色的草原》24K金碟[低速原抓WAV+CUE][1G]