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 相关文章推荐
从QQ网站中提取的纯JS省市区三级联动菜单
Dec 25 Javascript
Jquery easyUI 更新行示例
Mar 06 Javascript
jquery中each遍历对象和数组示例
Aug 05 Javascript
基于javascript实现的快速排序
Dec 02 Javascript
jQuery选择器实例应用
Jan 05 Javascript
javascript 操作cookies详解及实例
Feb 22 Javascript
javascript性能优化之分时函数的介绍
Mar 28 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
Nov 30 Javascript
微信小程序冒泡事件及其阻止方法实例分析
Dec 06 Javascript
JS正则表达式验证密码强度
Mar 18 Javascript
vuex分模块后,实现获取state的值
Jul 26 Javascript
vue使用canvas实现移动端手写签名
Sep 22 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
从手册去理解分析PHP session机制
2011/07/17 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
php分页查询的简单实现代码
2017/03/14 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
vuex提交state&amp;&amp;实时监听state数据的改变方法
2018/09/16 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
2020/09/08 Javascript
对于Python装饰器使用的一些建议
2015/06/03 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
药剂专业学生求职信范文
2013/12/28 职场文书
党员干部公开承诺书
2014/03/26 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
优秀员工推荐材料
2014/12/20 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
python全面解析接口返回数据
2022/02/12 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python