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闭包用法实例分析
Jan 23 Javascript
js实现全国省份城市级联下拉菜单效果代码
Sep 07 Javascript
Java  Spring 事务回滚详解
Oct 17 Javascript
JavaScript字符串对象
Jan 14 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
Sep 27 Javascript
十分钟带你快速了解React16新特性
Nov 10 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
Nov 17 Javascript
在vue中使用css modules替代scroped的方法
Mar 10 Javascript
Angular异步变同步处理方法
Aug 13 Javascript
Vue监听页面刷新和关闭功能
Jun 20 Javascript
深入了解query和params的使用区别
Jun 24 Javascript
layer.open的自适应及居中及子页面标题的修改方法
Sep 05 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
php判断字符以及字符串的包含方法属性
2008/08/30 PHP
php生成随机数的三种方法
2014/09/10 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
javascript 类方法定义还是有点区别
2009/04/15 Javascript
优化javascript的执行速度
2010/01/23 Javascript
JS学习之一个简易的日历控件
2010/03/24 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
《雨点儿》教学反思
2014/04/14 职场文书
人事代理委托书
2014/09/27 职场文书
2015个人半年总结范文
2015/03/09 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
生日祝酒词大全
2015/08/10 职场文书
Mysql Show Profile
2021/04/05 MySQL