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 相关文章推荐
bgsound 背景音乐 的一些常用方法及特殊用法小结
May 11 Javascript
jQuery中需要注意的细节问题小结
Dec 06 Javascript
Ajax执行顺序流程及回调问题分析
Dec 10 Javascript
innerHTML在IE中报错解决方案
Dec 15 Javascript
简单介绍JavaScript中字符串创建的基本方法
Jul 07 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
Aug 10 Javascript
Angular Js文件上传之form-data
Aug 28 Javascript
详解jQuery中的DOM操作
Dec 23 Javascript
微信JSAPI支付操作需要注意的细节
Jan 10 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
Mar 06 Javascript
p5.js 毕达哥拉斯树的实现代码
Mar 23 Javascript
详解vue-cli中模拟数据的两种方法
Jul 03 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
Windows下的PHP5.0详解
2006/11/18 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
详解php实现页面静态化原理
2017/06/21 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
javascript 写类方式之五
2009/07/05 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
vue实现文字加密功能
2019/09/27 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
Python Requests安装与简单运用
2016/04/07 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
使用opencv中匹配点对的坐标提取方式
2020/06/04 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
岗位职责范本
2013/11/23 职场文书
《雷雨》教学反思
2014/02/20 职场文书
车间主任岗位职责
2014/03/16 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技