HTML5---canvas 指针时钟-clock
2015-08-20 10:33
555 查看
<!doctype html> <html> <head></head> <body> <canvas id="clock" width="500" height="500"> 您的浏览器不支持canvas标签,无法看到时钟 </canvas> <script> var clock=document.getElementById('clock'); var cxt=clock.getContext('2d'); function drawClock(){ cxt.clearRect(0,0,500,500); //清除画布区域 var now =new Date(); var sec=now.getSeconds(); var min=now.getMinutes(); var hour=now.getHours(); hour=hour+min/60; //小时必须获取浮点类型(小时+分数转化成的小时) //问题 19:23:30 //将24小时进制转换为12小时 hour=hour>12?hour-12:hour; cxt.lineWidth=10; cxt.strokeStyle="#A61C3E"; //表盘(蓝色) cxt.beginPath(); cxt.arc(250,250,200,0,Math.PI*360,false); cxt.closePath(); cxt.stroke(); //时刻度 for(var i=0;i<12;i++){ cxt.save(); cxt.lineWidth=7; //设置时针的粗细 cxt.strokeStyle="#005693"; //设置时针的颜色 cxt.translate(250,250); cxt.rotate(i*30*Math.PI/180);//角度*Math.PI/180=弧度 cxt.beginPath(); cxt.moveTo(0,-170); cxt.lineTo(0,-190); cxt.closePath(); cxt.stroke(); cxt.restore(); } //分刻度 for(var i=0;i<60;i++){ cxt.save(); cxt.lineWidth=5; cxt.strokeStyle="#04562E"; cxt.translate(250,250); cxt.rotate(i*6*Math.PI/180); cxt.beginPath(); cxt.moveTo(0,-180); cxt.lineTo(0,-190); cxt.closePath(); cxt.stroke(); cxt.restore(); } //时针 cxt.save(); cxt.lineWidth=7; cxt.strokeStyle="#04562E"; cxt.translate(250,250);//设置异次元空间的0,0点,画布的圆心 cxt.rotate(hour*30*Math.PI/180); cxt.beginPath(); cxt.moveTo(0,-120); //针长 cxt.lineTo(0,10); cxt.closePath(); cxt.stroke(); cxt.restore(); //分针 cxt.save(); cxt.lineWidth=5; cxt.strokeStyle="#000"; cxt.translate(250,250); cxt.rotate(min*6*Math.PI/180); cxt.beginPath(); cxt.moveTo(0,-150); cxt.lineTo(0,15); cxt.closePath(); cxt.stroke(); cxt.restore(); //秒针 cxt.save(); cxt.strokeStyle="#611123"; cxt.lineWidth=3; cxt.translate(250,250); cxt.rotate(sec*6*Math.PI/180);//设置旋转角度 cxt.beginPath(); //画图 cxt.moveTo(0,-170); cxt.lineTo(0,20); cxt.closePath(); cxt.stroke(); cxt.beginPath(); //画出时针、分针、秒针的交叉点、 cxt.arc(0,0,5,0,360,false); cxt.closePath(); cxt.fillStyle="gray"; //设置填充样式 cxt.fill(); cxt.stroke(); //设置秒针前段的小圆点 cxt.beginPath(); cxt.arc(0,-150,5,0,360,false); cxt.closePath(); cxt.fillStyle="#FFF"; cxt.fill(); cxt.stroke();//设置笔触样式(秒针已设置) cxt.restore(); } drawClock(); //1000毫秒前要显示 //使用setInterval(代码,毫秒时间) 让时钟动起来 setInterval(drawClock,1000); </script> </body> </html>
效果:
相关文章推荐
- Webkit中HTML5 Video的实现分析-HTMLMediaElement & MediaPlayer
- 移动设备 h5屏幕适配
- HTML5---Canvas-画线,空心图,矩形,文字,三角形,旋转图片
- 后台模版第二季,真正好用漂亮,HTML5+CSS3搭建,下载即用,无需二次编写。
- HTML5----video ,audio常规操作
- HTML5标签
- H5上传图片
- HTML5 学习记录——1
- HTML5 boilerplate 笔记(转)
- HTML5+ 打开关闭侧滑窗口
- Chrome/Chromium HTML5 video 视频播放硬件加速
- html5+css3 权威指南阅读笔记(三)---表单及其他新增和改良元素
- 普元日记---HTML5底部遮罩层
- 《HTML5 Canvas核心技术——图形、动画与游戏开发》第三章要点汇总
- html5离线缓存--manifest
- HTML5 随手记(4)
- web socket and web worker 基础原理及使用
- HTML5 cavans的使用
- html5 history解析
- html5+css3(二)