canvas实现钟表效果


Posted in Javascript onFebruary 13, 2017

效果如下:

canvas实现钟表效果

代码如下:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>canvas画钟表</title>
 <style>
 body{
 background: #fc0;
 }
 #canvas1{
 background: #fff;
 }
 </style>
 </head>
 <body>
 <canvas id="canvas1" width="400" height="400"></canvas>
 <script>
 var oC=document.getElementById('canvas1');
 var oGC=oC.getContext('2d');
 function toDraw(){
 var x=200;
 var y=200;
 var r=150;
 oGC.clearRect(0,0,oC.width,oC.height);
 var oDate=new Date();
 var oHour=oDate.getHours();
 var oMinu=oDate.getMinutes();
 var oSec=oDate.getSeconds();
 var hVal=(-90+oHour*30+oMinu/2)*Math.PI/180;
 var mVal=(-90+oMinu*6)*Math.PI/180;
 var sVal=(-90+oSec*6)*Math.PI/180;
 oGC.beginPath();
 for(i=0;i<60;i++){
 oGC.moveTo(x,y);
 oGC.arc(x,y,r,6*i*Math.PI/180,6*(i+1)*Math.PI/180,false);
 }
 oGC.closePath();
 oGC.stroke();
 oGC.fillStyle='#fff';
 oGC.beginPath();
 oGC.moveTo(x,y);
 oGC.arc(x,y,r*19/20,0,360*Math.PI/180,false);
 oGC.closePath();
 oGC.fill();
 oGC.lineWidth=3;
 oGC.beginPath();
 for(i=0;i<12;i++){
 oGC.moveTo(x,y);
 oGC.arc(x,y,r,30*i*Math.PI/180,30*(i+1)*Math.PI/180,false);
 }
 oGC.closePath();
 oGC.stroke();
 oGC.fillStyle='#fff';
 oGC.beginPath();
 oGC.moveTo(x,y);
 oGC.arc(x,y,r*18/20,0,360*Math.PI/180,false);
 oGC.closePath();
 oGC.fill();
 oGC.lineWidth=5;
 oGC.beginPath();
 oGC.moveTo(x,y);
 oGC.arc(x,y,r*10/20,hVal,hVal,false);
 oGC.closePath();
 oGC.stroke();
 oGC.lineWidth=3;
 oGC.beginPath();
 oGC.moveTo(x,y);
 oGC.arc(x,y,r*14/20,mVal,mVal,false);
 oGC.closePath();
 oGC.stroke();
 oGC.lineWidth=1;
 oGC.beginPath();
 oGC.moveTo(x,y);
 oGC.arc(x,y,r*17/20,sVal,sVal,false);
 oGC.closePath();
 oGC.stroke();
 }
 setInterval(toDraw,1000);
 toDraw();
 </script>
 </body>
</html>

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

Javascript 相关文章推荐
加速IE的Javascript document输出的方法
Dec 02 Javascript
微信分享的标题、缩略图、连接及描述设置方法
Oct 14 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
Jan 29 Javascript
jQuery AjaxUpload 上传图片代码
Feb 02 Javascript
用原生JS对AJAX做简单封装的实例代码
Jul 13 Javascript
基于angularJS的表单验证指令介绍
Oct 21 Javascript
js仿微信语音播放实现思路
Dec 12 Javascript
利用Node.js+Koa框架实现前后端交互的方法
Feb 27 Javascript
vue v-model实现自定义样式多选与单选功能
Jul 05 Javascript
简化版的vue-router实现思路详解
Oct 19 Javascript
vue实现select下拉显示隐藏功能
Sep 30 Javascript
JS实现刷新网页后之前浏览位置保持不变示例详解
Aug 14 Javascript
深入理解Javascript箭头函数中的this
Feb 13 #Javascript
ES6学习之变量的解构赋值
Feb 12 #Javascript
AngularJS实现路由实例
Feb 12 #Javascript
jQuery文字轮播特效
Feb 12 #Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
Feb 12 #Javascript
jQuery、zepto、js常用小技巧
Feb 12 #Javascript
JS中如何实现Laravel的route函数详解
Feb 12 #Javascript
You might like
thinkphp特殊标签用法概述
2014/11/24 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
教你php如何实现验证码
2016/01/20 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
JS学习之一个简易的日历控件
2010/03/24 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
Node.js  事件循环详解及实例
2017/08/06 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
python使用turtle库与random库绘制雪花
2018/06/22 Python
python 列表降维的实例讲解
2018/06/28 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
对python模块中多个类的用法详解
2019/01/10 Python
django项目中新增app的2种实现方法
2020/04/01 Python
护理专业自荐信
2013/12/03 职场文书
工程技术员岗位职责
2014/03/02 职场文书
任命书模板
2014/06/04 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
离婚起诉书范本
2015/05/18 职场文书
Pandas 稀疏数据结构的实现
2021/07/25 Python
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
Java获取字符串编码格式实现思路
2022/09/23 Java/Android