运用CSS3实现简单的时钟效果
来源:互联网 发布:数据库空值null 编辑:程序博客网 时间:2024/04/28 06:11
目的:利用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>
阅读全文
0 0
- 运用CSS3实现简单的时钟效果
- CSS3+js实现简单的旋转圆环时钟效果实例
- 多线程简单运用---时钟的实现
- css3+js 实现时钟效果
- 运用CSS3实现钟摆效果
- 【UI基础】时钟效果的简单实现
- 用css3实现简单的进入效果
- css3实现简单的文字动画效果
- 纯css3实现圆盘时钟动画效果
- css3简单实现火焰效果
- Html5的CSS3的transition实现简单动画效果
- 简单的时钟实现
- 时钟的简单实现
- css3和jQuery实现一个简单的标签页效果
- 一步一步用CSS3实现简单的Loading动画效果
- css3利用transform实现简单的旋转效果
- CSS3+js实现多彩炫酷旋转圆环时钟效果
- css3--简单制作时钟
- EL和JSTL标签库 入门
- Android Study之Material Design初体验(一)
- 生成AssetBundle
- Mybaits逆向生成工具
- POJ
- 运用CSS3实现简单的时钟效果
- jsp
- java学习初探十一之日期处理
- SDWebImage新版(一) 基本流程
- 【C#】Excel动态导入多张表
- 洛谷P2170选学霸(玄学吧)
- 台湾大学林轩田机器学习笔记(三)
- Markdown的使用
- Shell Script语法,变量引用中的冒号+减号(:-)