简易时钟
2016-05-02 18:03
711 查看
简易时钟
利用css与js实现一个简易时钟的制作!代码:
css部分代码:在css内设置了表盘,表盘内的数字,指针的基本样式.<style type="text/css"> .clock{ width: 300px; height: 300px; background-color: #CCCCCC; border-radius: 50%; position: absolute; top: 50%; left: 50%; margin-left: -150px; margin-top: -150px; box-shadow:inset 0px 5px 10px #a3a9ad; background-image: -webkit-linear-gradient(top,#d3e8ef 0px,#a3adb0 50px,#767674 100%); } .pad{ width: 100%; height: 100%; position: relative; } .pad div{ width: 280px; height: 30px; /*background-color: yellow;*/ line-height: 30px; text-align: center; position: absolute; left: 10px; top: 135px; } .pad span{ display: block; width: 30px; height: 30px; } #hour{ width: 6px; height: 70px; background-color: black; opacity: 0.6; } #minute { width: 4px; height: 100px; background: purple; opacity: 0.6; bottom: 150px; } #second { width: 2px; height: 100px; background: red; opacity: 0.6; bottom: 150px; } .point { position: absolute; transform-origin: 50% bottom; bottom: 150px; left: 150px; } </style>
body内的代码:
在div内放入了span标签,以便改变数字的角度,如果现在不理解继续看js的代码解释就能理解了!<div class="clock"> <div class="pad"> <div><span>9</span></div> <div><span>10</span></div> <div><span>11</span></div> <div><span>12</span></div> <div><span>1</span></div> <div><span>2</span></div> <div><span>3</span></div> <div><span>4</span></div> <div><span>5</span></div> <div><span>6</span></div> <div><span>7</span></div> <div><span>8</span></div> </div> <div class="point" id="hour"></div> <div class="point" id="minute"></div> <div class="point" id="second"></div> </div>
js部分代码:
首先获取定义的所有元素:var divs=document.querySelectorAll(".pad>div"); var spans=document.getElementsByTagName("span"); var seconds = document.getElementById("second"); var minutes = document.getElementById("minute"); var hours = document.getElementById("hour");
在body中一共写入了12个div,分别装入了12个数字,但是它们并没有被定位所以此时这12个div是重合的,通过以下代码,将重合的div放置到应该放置的位置!
for(var i=0;i<divs.length;i++){ divs[i].style.transform="rotate("+(i*30)+"deg)";//旋转div rotate(45deg); spans[i].style.transform="rotate("+(-30*i)+"deg)"; }
首先利用一个for循环获取到每一个div,然后将每一个div旋转30度(360/12),相应的时钟数字会到相应的位置上.但是此时div内的数字也会旋转30度,所以在div内嵌套一个span标签,再通过第二行代码将span标签以反方向旋转回来即可.
这里写代码片
设置定时函数
定时函数的作用是让时分秒针可以按照当前时间进行转动.setInterval(function(){ var now = new Date(); var h = now.getHours(); var m = now.getMinutes(); var s = now.getSeconds(); var hdeg = h / 12 * 360 + (m / 60 * 30); var mdeg = m / 60 * 360; var sdeg = s / 60 * 360; hours.style.transform = "rotate(" + hdeg + "deg)"; minutes.style.transform = "rotate(" + mdeg + "deg)"; seconds.style.transform = "rotate(" + sdeg + "deg)"; },1000);
获取当前时分秒函数
var now = new Date(); var h = now.getHours(); var m = now.getMinutes(); var s = now.getSeconds();
获取时分秒旋转角度函数
var hdeg = h / 12 * 360 + (m / 60 * 30); var mdeg = m / 60 * 360; var sdeg = s / 60 * 360;
使时分秒针进行转动
hours.style.transform = "rotate(" + hdeg + "deg)"; minutes.style.transform = "rotate(" + mdeg + "deg)"; seconds.style.transform = "rotate(" + sdeg + "deg)";
时钟图片
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- Web布局连载——两栏固定布局(五)
- JavaScript演示排序算法
- 关于指针的一些事情
- javascript实现10进制转为N进制数
- [div+css]晒晒最新制作专题推广页模板
- 最后一次说说闭包
- Ajax
- 盒子模型
- CSS选择器
- CSS样式优先权
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- [css] line-height 百分比单位和数值单位的区别
- 异步流程控制:7 行代码学会 co 模块