基于HTML5+CSS3实现简单的时钟效果
发布时间:2017-09-11 10:06:05 作者:佚名 我要评论
利用html5,css实现钟摆效果 ,在项目中经常会遇到,今天小编把基于HTML5+CSS3实现简单的时钟效果的实现代码分享到脚本之家平台,需要的额朋友参考下吧
目的:
利用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实现简单的时钟效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
- 这是一款基于js+css3实现的扁平化APP图标时钟动画效果源码,是一款扁平化风格APP时钟动态图标代码,可事实显示时钟的时针、分针与秒针的运行状态,画面运行效果流畅自然,2015-04-08
- 本文给大家分享的是使用CSS3结合js实现简单的时钟特效的代码,主要是使用了css3 的transform属性中的 rotate的旋转效果和translate的位移效果的,这里推荐给大家,希望大家2015-03-18
- 今天我们来分享一款风格独特的时钟特效源码,这款CSS3时钟动画是一款数字时钟,时间每过一秒,相应的位置就会像翻日历一样翻过去。另外,这款CSS3数字时钟有点立体的效果,2014-11-22
- 这是一款基于jquery+CSS3实现的数字时钟效果源码,可实现年月日及具体时间的显示,还可以读取并实时显示本地时间。并且在秒数的显示上有闪动的效果2014-10-20
- 这是一款jQuery时钟插件,它非常有特点,即不是数字时钟,也不是圆盘时钟,而是基于线性的时钟。其制作思想是把圆形的时钟刻度展开成直线,把时针分针和秒针也变成可以滑动2014-07-01
- 这是一款超酷的纯CSS3实现的圆盘时钟动画效果,这款时钟动画在初始化的时候就有动画特效,包括圆盘的形成,以及时钟指针的形成,都赋予了极为炫酷的动画色彩。2014-06-20
- 一款数字时钟,时间每过一秒,相应的位置就会像翻日历一样翻过去2014-05-04
- 一款完全利用CSS3实现钟表,不是用任何的图片和第三方的工具2014-04-14
最新评论