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 相关文章推荐
javascript真的不难-回顾一下基础知识
Jan 15 Javascript
快速掌握Node.js事件驱动模型
Mar 21 Javascript
jQuery实现下拉框功能实例代码
May 06 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
Sep 19 Javascript
vue中将网页打印成pdf实例代码
Jun 15 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
Jun 01 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
Sep 01 Javascript
详解KOA2如何手写中间件(装饰器模式)
Oct 11 Javascript
vue发送websocket请求和http post请求的实例代码
Jul 11 Javascript
vue自定义表单生成器form-create使用详解
Jul 19 Javascript
JavaScript forEach中return失效问题解决方案
Jun 01 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
Feb 25 Javascript
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采用模块和操作分析
2011/04/18 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
Python 命令行参数sys.argv
2008/09/06 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
python内打印变量之%和f的实例
2020/02/19 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
Pycharm中如何关掉python console
2020/10/27 Python
python 实现批量图片识别并翻译
2020/11/02 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
WWE美国职业摔角官方商店:WWE Shop
2018/11/15 全球购物
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
面试后感谢信怎么写
2014/02/01 职场文书
三八妇女节慰问信
2015/02/14 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
mybatis 获取更新记录的id
2022/05/20 Java/Android