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 相关文章推荐
Javascript 二维数组
Nov 26 Javascript
jquery对table中各数据的增加、保存、删除操作示例
May 14 Javascript
JavaScript中的数学运算介绍
Dec 29 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
浅析AngularJS Filter用法
Dec 28 Javascript
JS正则替换掉小括号及内容的方法
Nov 29 Javascript
vue+SSM实现验证码功能
Dec 07 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
Apr 12 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
vue 弹出遮罩层样式实例
Jul 22 Javascript
React实现阿里云OSS上传文件的示例
Aug 10 Javascript
vue 给数组添加新对象并赋值
Apr 20 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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
Yii扩展组件编写方法实例分析
2015/06/29 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
js继承的实现代码
2010/08/05 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
python正则表达式re模块详解
2014/06/25 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
Python continue语句实例用法
2020/02/06 Python
python zip()函数的使用示例
2020/09/23 Python
非常漂亮的CSS3百叶窗焦点图动画
2016/02/24 HTML / CSS
人力资源作业细则
2014/03/03 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
2015高考寄语集锦
2015/02/27 职场文书
计生个人工作总结
2015/02/28 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
MySQL 数据类型详情
2021/11/11 MySQL