canvas仿iwatch时钟效果


Posted in Javascript onMarch 06, 2017

效果图:

canvas仿iwatch时钟效果

图(1)

canvas仿iwatch时钟效果

图(2)

代码如下:

<!doctype html>
<html>
<head>
 <meta charset="UTF-8">
 <title>Title</title>
<style>
*{margin:0; padding:0;}
body{ background:#000; text-align:center;}
canvas{ background:#fff;}
</style>
<script>
function toDou(iNum){
 return iNum<10?'0'+iNum:''+iNum;
}
function d2a(n){
 return n*Math.PI/180;
}
window.onload = function(){
 var oC = document.getElementById('c1');
 var gd = oC.getContext('2d');
 var cx = oC.width/2,
 cy = oC.height/2;
 function clock(){
 gd.clearRect(0,0,oC.width,oC.height);
 var oDate = new Date();
 var H = oDate.getHours()%12;
 var M = oDate.getMinutes();
 var S = oDate.getSeconds();
 var MS = oDate.getMilliseconds();
 drawArc(60,0,(H*30+M/60*30),'orange');
 drawArc(80,0,(M*6+S/60*6),'purple');
 drawArc(100,0,(S*6+MS/1000*6),'aqua');
 var str = toDou(H)+':'+toDou(M)+':'+toDou(S);
 gd.font = '20px 微软雅黑';
 gd.textAlign = 'center';
 gd.textBaseline = 'middle';
 gd.fillText(str,cx,cy);
 }
 clock()
 setInterval(clock,1);
 function drawArc(r,s,e,color){
 color = color||'black';
 gd.beginPath();
 gd.arc(cx,cy,r,d2a(s-90),d2a(e-90),false);
 gd.strokeStyle = color;
 gd.lineWidth = 20;
 gd.stroke();
 }
};
</script>
</head>
<body>
 <canvas id="c1" width="800" height="600"></canvas>
</body>
</html>

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

Javascript 相关文章推荐
js数字转换为float,取N位小数
Feb 08 Javascript
简介JavaScript中Math.LOG10E属性的使用
Jun 14 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
Aug 31 Javascript
Javascript页面跳转常见实现方式汇总
Nov 28 Javascript
基于jquery实现动态竖向柱状条特效
Feb 12 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
Aug 12 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
May 08 Javascript
vue项目中引入noVNC远程桌面的方法
Mar 05 Javascript
js删除数组中某几项的方法总结
Jan 16 Javascript
解决Vue中使用keepAlive不缓存问题
Aug 04 Javascript
Openlayers绘制地图标注
Sep 28 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
jQuery滚动监听实现商城楼梯式导航效果
Mar 06 #Javascript
纯JS实现弹性导航条效果
Mar 06 #Javascript
JS实现颜色动态淡化效果
Mar 06 #Javascript
vue模板语法-插值详解
Mar 06 #Javascript
js中的面向对象入门
Mar 06 #Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
Mar 06 #Javascript
Vue 2.x教程之基础API
Mar 06 #Javascript
You might like
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
如何让您的中波更粗更长 - 中波框形天线制作
2021/03/10 无线电
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
页面版文本框智能提示JS代码
2009/11/20 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
对pandas中Series的map函数详解
2018/07/25 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
高级护理专业毕业生推荐信
2013/12/25 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
毕业自我鉴定书
2014/03/24 职场文书
目标责任书范本
2014/04/16 职场文书
班主任对学生的评语
2014/04/26 职场文书
节水标语大全
2014/06/11 职场文书
反腐倡廉标语
2014/06/24 职场文书
2014年学校体育工作总结
2014/12/08 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
Golang入门之计时器
2022/05/04 Golang