canvas绘制表盘时钟


Posted in Javascript onJanuary 23, 2017

话不多说,请看代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>canvas绘制表盘</title>
</head>
<body>
 <canvas id='box' width="500" height="500" >
 您的浏览器不支持canvas
 </canvas>
 <script>
 var box = document.getElementById('box');
 var cxt = box.getContext('2d');
 // 时钟动起来
 var timer = null;
 function clock(){
 var date = new Date();
 var h = date.getHours();
 h = h + h/60;
 h = h>12? h-12:h;
 var m = date.getMinutes();
 var s = date.getSeconds();
 // 清画布
 cxt.clearRect(0,0,500,500); 
 // 画表盘
 cxt.strokeStyle = '#f0f';
 cxt.lineWidth = 6;
 cxt.beginPath();
 cxt.arc(250,250,100,0,2*Math.PI);
 cxt.stroke();
 // 画时钟刻度
 for(var i=0; i<12; i++){
 cxt.save();
 cxt.translate(250,250);
 cxt.rotate(30*i*Math.PI/180);
 cxt.lineWidth = 3;
 cxt.beginPath();
 cxt.moveTo(0,-80);
 cxt.lineTo(0,-92);
 cxt.stroke();
 cxt.restore();
 }
 //画分钟刻度
 for(var i=0; i<60; i++){
 cxt.save();
 cxt.translate(250,250);
 cxt.rotate(6*i*Math.PI/180);
 cxt.lineWidth = 2;
 cxt.beginPath();
 cxt.moveTo(0,-86);
 cxt.lineTo(0,-92);
 cxt.stroke();
 cxt.restore();
 }
 // 画时针
 cxt.save();
 cxt.lineWidth = 5;
 cxt.translate(250,250);
 cxt.rotate(h*30*Math.PI/180);
 cxt.beginPath();
 cxt.moveTo(0,6);
 cxt.lineTo(0,-40);
 cxt.stroke();
 cxt.restore();
 // 画分针
 cxt.save();
 cxt.lineWidth = 3;
 cxt.translate(250,250);
 cxt.rotate(m*6*Math.PI/180);
 cxt.beginPath();
 cxt.moveTo(0,8);
 cxt.lineTo(0,-60);
 cxt.stroke();
 cxt.restore();
 // 画秒针
 cxt.save();
 cxt.lineWidth = 1;
 cxt.translate(250,250);
 cxt.rotate(s*6*Math.PI/180);
 cxt.beginPath();
 cxt.moveTo(0,10);
 cxt.lineTo(0,-75);
 cxt.stroke();
 cxt.restore();
 // 画中心的小圆固定三根针
 cxt.save();
 cxt.beginPath();
 cxt.fillStyle = '#0f0';
 cxt.lineWidth = 2;
 cxt.translate(250,250);
 cxt.arc(0,0,2,0,360,false);
 cxt.stroke();
 cxt.fill();
 cxt.restore();
 // 画秒针上的园
 cxt.save();
 cxt.fillStyle = '#f00';
 cxt.lineWidth = 2;
 cxt.translate(250,250);
 cxt.rotate(s*6*Math.PI/180);
 cxt.beginPath();
 cxt.arc(0,-60,2,0,360,false);
 cxt.stroke();
 cxt.fill();
 cxt.restore();
 }
 clock();
 timer = setInterval(clock,1000);
 </script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
xmlHTTP实例
Oct 24 Javascript
JQuery 学习笔记 选择器之一
Jul 23 Javascript
js 遍历对象的属性的代码
Dec 29 Javascript
jquery得到iframe src属性值的方法
Sep 25 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
JavaScript记录光标在编辑器中位置的实现方法
Apr 22 Javascript
解决JS外部文件中文注释出现乱码问题
Jul 09 Javascript
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
微信小程序顶部可滚动导航效果
Oct 31 Javascript
Webpack实战加载SVG的方法
Dec 26 Javascript
Vue infinite update loop的问题解决
Apr 23 Javascript
layer设置maxWidth及maxHeight解决方案
Jul 26 Javascript
canvas绘制的直线动画
Jan 23 #Javascript
node.js实现复制文本到剪切板的功能
Jan 23 #Javascript
jQuery 全选 全不选 事件绑定的实现代码
Jan 23 #Javascript
Javascript中构造函数要注意的一些坑
Jan 23 #Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
Jan 23 #Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
Jan 23 #Javascript
利用JS实现简单的日期选择插件
Jan 23 #Javascript
You might like
加速XP搜索功能堪比vista
2007/03/22 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
sqlalchemy对象转dict的示例
2014/04/22 Python
python k-近邻算法实例分享
2014/06/11 Python
查看django版本的方法分享
2018/05/14 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
印刷工程专业应届生求职信
2013/09/29 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
代理协议书范本
2014/04/22 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
反腐倡廉观后感
2015/06/08 职场文书
学习心得体会
2019/06/20 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
python随机打印成绩排名表
2021/06/23 Python