JS四步实现毫秒拖拽时钟
来源:互联网 发布:java 树遍历treenode 编辑:程序博客网 时间:2024/05/21 11:29
最终效果图:
具体代码如下:
<!doctype html><html><head><meta charset="utf-8"><title></title><style> * { margin:0; padding:0; list-style:none; } /*圆形表盘*/ #box { width:300px; height:300px; border:1px solid #000; border-radius:50%; position:absolute; left:300px; top:100px; background:#fff; box-shadow:1px 1px 5px #000; } #box .cap { width:20px; border-radius:50%; height:20px; background:#999; position:absolute; left:50%; top:50%; margin:-10px 0 0 -10px; } #box div { transform-origin:center bottom; } #box .hour { width:14px; height:80px; background:#000; position:absolute; left:50%; margin-left:-7px; top:50%; margin-top:-80px; border-radius:50% 50% 0 0; } #box .min { width:10px; height:100px; background:#282828; position:absolute; left:50%; margin-left:-5px; top:50%; margin-top:-100px; border-radius:50% 50% 0 0; } #box .sec { width:4px; height:120px; background:#f00; position:absolute; left:50%; margin-left:-2px; top:50%; margin-top:-120px; } .scale { width:4px; height:10px; background:#000; position:absolute; left:50%; margin-left:-2px; transform-origin:center 150px; } /*整点刻度样式*/ .bs { width:6px; height:18px; background:#000; position:absolute; left:50%; margin-left:-3px; transform-origin:center 150px; } /*分钟刻度样式*/ #box span em { margin-top:20px; width:100px; position:absolute; left:50%; margin-left:-50px; text-align:center; font-style:normal; }</style><script>window.onload=function(){ //获取元素 var oBox=document.getElementById('box'); var oH=document.querySelector('.hour'); var oM=document.querySelector('.min'); var oS=document.querySelector('.sec'); //生成刻度 var N=60; //创建元素 for(var i=0; i<N; i++){ var oSpan=document.createElement('span'); //将小时刻度与分钟刻度区分开并添加class if(i%5==0){//整点刻度 oSpan.className='bs'; var num=i/5==0?12:i/5; oSpan.innerHTML='<em>'+num+'<\/em>'; //调整角度与钟框垂直 oSpan.children[0].style.transform='rotate('+-i*6+'deg)'; }else{//分钟刻度 oSpan.className='scale'; } oBox.appendChild(oSpan); oSpan.style.transform='rotate('+6*i+'deg)'; } function clock(){ var oDate=new Date(); var h=oDate.getHours(); var m=oDate.getMinutes(); var s=oDate.getSeconds(); var ms=oDate.getMilliseconds(); oH.style.transform='rotate('+(h*30+m/60*30)+'deg)'; oM.style.transform='rotate('+(m*6+s/60*6)+'deg)'; oS.style.transform='rotate('+(s*6+ms/1000*6)+'deg)'; } //防止打开卡顿一下 clock(); //设置定时器 setInterval(clock,30); drag(oBox); //拖拽 function drag(oDiv){ oDiv.onmousedown=function(ev){ var oEvent=ev || event; //获取旧位置 var disX=oEvent.clientX-oDiv.offsetLeft; var disY=oEvent.clientY-oDiv.offsetTop; document.onmousemove=function(ev){ var oEvent=ev || event; //设置新位置 oDiv.style.left=oEvent.clientX-disX+'px'; oDiv.style.top=oEvent.clientY-disY+'px'; }; document.onmouseup=function(){ document.onmousemove=null; document.onmouseup=null; //释放捕获 oDiv.releaseCapture && oDiv.releaseCapture(); }; //设置捕获 oDiv.setCapture && oDiv.setCapture(); return false; }; };};</script></head><body><div id="box"> <div class="hour"></div><!-- 时针 --> <div class="min"></div><!-- 分针 --> <div class="sec"></div><!-- 秒针 --> <div class="cap"></div><!-- 表盘圆点 --></div></body></html>
转载:
JS四步实现毫秒拖拽时钟
0 0
- JS四步实现毫秒拖拽时钟
- JS显示时钟精确到毫秒
- 时钟四:实现闹钟
- js实现时钟
- js实现时钟显示
- JS实现时钟.
- js实现网页时钟
- js时钟实现
- JS实现时钟效果
- js 实现页面时钟
- js实现时钟
- js 实现实时时钟
- js实现动态时钟
- js实现动态时钟
- JS实现时钟功能
- js实现时钟
- JS实现网页时钟
- JS 时钟的js实现
- Android应用内消息计数(角标)模型及解决方案
- Hibernate的sessionFactory
- CURL封装的类
- GreenDao3 数据库升级问题
- css3自定义checkbox与radiobox
- JS四步实现毫秒拖拽时钟
- 山科大oj--Matrix Problem : Array Practice
- [maxsprict] 一个转换逐帧动画以及改变骨骼层级的脚本
- centos6.4 64位下安装nfs文件共享系统
- Spring学习笔记(七)
- 类
- 欢迎使用CSDN-markdown编辑器
- 四种复制方法效率比较
- css