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 相关文章推荐
javascript 文档的编码问题解决
Mar 01 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
Aug 19 Javascript
jquery购物车实时结算特效实现思路
Sep 23 Javascript
js 3种归并操作的实例代码
Oct 30 Javascript
javascript操作符&quot;!~&quot;详解
Feb 10 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
Oct 21 Javascript
JavaScript实现页面跳转的方式汇总
May 16 Javascript
Ubuntu系统下Angularjs开发环境安装
Sep 01 Javascript
WEB开发之注册页面验证码倒计时代码的实现
Dec 15 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
Dec 26 Javascript
vue router仿天猫底部导航栏功能
Oct 18 Javascript
vue.js中父组件调用子组件的内部方法示例
Oct 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打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
Symfony核心类概述
2016/03/17 PHP
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
2019/10/22 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
python中metaclass原理与用法详解
2019/06/25 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
生产现场工艺工程师岗位职责
2013/11/28 职场文书
财务总监岗位职责
2014/03/07 职场文书
服装设计师求职信
2014/06/04 职场文书
社区助残日活动总结
2014/08/29 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
工资收入证明
2014/10/07 职场文书
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
给老师的感谢信
2015/01/20 职场文书
个人承诺书格式范文
2015/04/29 职场文书
宾馆客房管理制度
2015/08/06 职场文书
学习杨善洲同志先进事迹心得体会
2016/01/23 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书