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 相关文章推荐
JS输入用户名自动显示邮箱后缀列表的方法
Jan 27 Javascript
JavaScript保存并运算页面中数字类型变量的写法
Jul 06 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
May 26 Javascript
js完整倒计时代码分享
Sep 18 Javascript
JavaScript实现简单图片轮播效果
Aug 21 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 Javascript
JS面向对象的程序设计相关知识小结
May 26 Javascript
js中对象和面向对象与Json介绍
Jan 21 Javascript
微信小程序页面调用自定义组件内的事件详解
Sep 12 Javascript
微信小程序8种数据通信的方式小结
Feb 03 Javascript
Vue 监听元素前后变化值实例
Jul 29 Javascript
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
深入理解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
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
php版微信自动登录并获取昵称的方法
2016/09/23 PHP
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
Python多线程结合队列下载百度音乐的方法
2015/07/27 Python
python 定时修改数据库的示例代码
2018/04/08 Python
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
python爬虫之遍历单个域名
2019/11/20 Python
Python作用域与名字空间原理详解
2020/03/21 Python
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
关于毕业的广播稿
2014/01/10 职场文书
11月红领巾广播稿
2014/01/17 职场文书
学生会主席事迹材料
2014/01/28 职场文书
毕业生写求职信的要点
2014/03/04 职场文书
健康家庭事迹材料
2014/05/02 职场文书
2014年度个人工作总结
2014/11/07 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
安全保证书
2015/01/16 职场文书
学校实习推荐信
2015/03/27 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL