用h5和原生js做的漂亮的时钟
2017-12-07 22:18
337 查看
用h5和原生js做的时钟
页面部分:<div class="clock"> <div class="mask"></div> </div>
样式:
body{background:#FFD741} .clock{ width:300px;height:300px; border:20px solid #353D46; background:#252C34; border-radius: 50%; top:0;left:0;right:0;bottom:0; position:absolute; margin:auto; } .mask{ background: #EE6C3D; width:20px;height:20px; border-radius: 50%; top:0;left:0;right:0;bottom:0; position:absolute; margin:auto; z-index: 1; }
js部分:
window.onload=function(){ var clock=document.getElementsByTagName("div")[0]; //画刻度 function drawMark(){ var w,h; for(var i=0;i<60;i++){ var div=document.createElement("div"); if(i%5==0){ var span=document.createElement("span"); w=4;h=12 }else{ w=4;h=4 } div.style.cssText="width:"+w+"px;height:"+h+"px;background:#DEE2EB;position:absolute;border-radius:2px;top:0;left:0;transform:translateX("+(300-w)/2+"px) rotate("+i*6+"deg);transform-origin:"+(w/2)+"px 150px" clock.appendChild(div) span.style.cssText="width:10px;height:10px;font-size:24px;color:#DEE2EB;position:absolute;border-radius:2px;top:10px;left:0;transform:translateX(145px) rotate("+(i+.5)*6+"deg);transform-origin:5px 140px" span.innerHTML=(i+1)/5 clock.appendChild(span) } } //画指针 function drawPointer(w,h,c,a){ var w=w||6; var h=h||50; var c=c||"#999"; var a=a||10 var div=document.createElement("div"); div.style.cssText="width:"+w+"px;height:"+h+"px;background:"+c+";position:absolute;left:"+(300/2)+"px;top:"+(150-h/2)+"px;border-radius:5px;transform:rotate("+a+"deg);transform-origin:left center" clock.appendChild(div); return div; } drawMark(); var time=new Date(); var h=drawPointer(75,8,"#fff",time.getHours()*30+time.getMinutes()*6/12-90); var m=drawPointer(100,6,"#fff",time.getMinutes()*6-90); var s=drawPointer(130,4,"#EE6C3D",time.getSeconds()*6-90); setInterval(function(){ var time=new Date(); h.style.transform="rotate("+(time.getHours()*30+time.getMinutes()*6/12-90)+"deg)"; m.style.transform="rotate("+(time.getMinutes()*6-90)+"deg)" s.style.transform="rotate("+(time.getSeconds()*6-90)+"deg)" },1000) var hours=document.getElementsByTagName("select")[0].value; var minutes=document.getElementsByTagName("select")[1].value; var seconds=document.getElementsByTagName("select")[2].value; function setClock(){ var time = new Date(); var th = time.getHours(); var tm = time.getMinutes(); var ts = time.getSeconds(); var d1=(th>=hours)&&(tm>=minutes)&&(ts>=seconds); var d2=(th>=hours)&&(tm>=minutes); var d3=th>hours; if(d1||d2||d3){ clock.style.animation="shake 1s linear alternate infinite running" }else{ clock.style.animation="" } } }
一个漂亮的时钟就完成了,结果如图:
相关文章推荐
- rn封装原生jsbridge与H5交互
- 有趣的Javascript:只需一个JS让万恶的IE5、IE6、IE7、IE8全都支持H5原生Canvas绘图(有演示demo)
- 去它的h5,我还是用js写原生跨平台app吧
- 自制一个H5图片拖拽、裁剪插件(原生JS)
- iOS与H5交互 H5与App原生交互,一般会是前端页面中的JavaScript与App使用的原生开发语言的交互。技术方案应能达到以下要求: 在js与原生进行交互的时候能保证正常的正向调用逻辑返回
- cocos2dx-js 截屏 (原生 + H5)
- 原生js实现中文时钟
- 转载 ---原生和H5交互挺多的,最近也有朋友再问。这儿我写个简单的例子给大家 直接贴代码 js的
- 原生js粒子时钟
- cocos js 截屏 (原生 + H5)
- 原生js 时钟
- h5实现五子棋游戏 js原生实现
- H5实现APP和原生方式有多大差距,多少坑?JS才是王道!
- 自制一个H5图片拖拽、裁剪插件(原生JS)
- 基于canvas的原生JS时钟效果
- H5与android原生的JS交互
- JS+H5 Canvas实现时钟效果
- 自制一个H5图片拖拽、裁剪插件(原生JS)
- h5微网页向上滑动屏幕加载跟多数据例子(原生js)
- js定时器,原生js写的时钟