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读取RSS数据
Jan 20 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
Jul 29 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
Nov 01 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
Dec 20 Javascript
微信小程序 template模板详解及实例代码
Mar 09 Javascript
JS数组去重(4种方法)
Mar 27 Javascript
js前端实现图片懒加载(lazyload)的两种方式
Apr 24 Javascript
Vue下路由History模式打包后页面空白的解决方法
Jun 29 Javascript
AngularJS自定义表单验证功能实例详解
Aug 24 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
Feb 28 jQuery
js实现转动骰子模型
Oct 24 Javascript
JS正则表达式常见函数与用法小结
Apr 13 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
thinkPHP实现瀑布流的方法
2014/11/29 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
jQuery 表格工具集
2010/04/25 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
python万年历实现代码 含运行结果
2017/05/20 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
如何使用Pytorch搭建模型
2020/10/26 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
马来西亚综合购物网站:Lazada马来西亚
2018/06/05 全球购物
客户服务经理岗位职责
2014/01/29 职场文书
《七颗钻石》教学反思
2014/02/28 职场文书
学雷锋月活动总结
2014/04/25 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
英文升职感谢信
2015/01/23 职场文书
档案管理员岗位职责
2015/02/12 职场文书
赤壁观后感(2)
2015/06/15 职场文书
文书工作总结(范文)
2019/07/11 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python
Elasticsearch 数据类型及管理
2022/04/19 Python
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang