使用canvas绘制超炫时钟


Posted in HTML / CSS onDecember 17, 2014

先上效果图:

使用canvas绘制超炫时钟

复制代码
代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>canvas钟表</title>
<meta name="Keywords" content="">
<meta name="author" content="@my_programmer">
<style type="text/css">
body{margin:0;}
</style>
</head>
<body onload="run()">
<canvas id="canvas" width=400 height=400 style="border: 1px #ccc solid;">如果你看到这段文字,说明你的浏览器弱爆了!</canvas>
<script>
window.onload=draw;
function draw() {
var canvas=document.getElementById('canvas');
var context=canvas.getContext('2d');
context.save(); ///////////////////////////////////保存
context.translate(200,200);
var deg=2*Math.PI/12;
//////////////////////////////////////////////////表盘
context.save();
context.beginPath();
for(var i=0;i<13;i++){
var x=Math.sin(i*deg);
var y=-Math.cos(i*deg);
context.lineTo(x*150,y*150);
}
var c=context.createRadialGradient(0,0,0,0,0,130);
c.addColorStop(0,"#22f");
c.addColorStop(1,"#0ef")
context.fillStyle=c;
context.fill();
context.closePath();
context.restore();
//////////////////////////////////////////////////数字
context.save();
context.beginPath();
for(var i=1;i<13;i++){
var x1=Math.sin(i*deg);
var y1=-Math.cos(i*deg);
context.fillStyle="#fff";
context.font="bold 20px Calibri";
context.textAlign='center';
context.textBaseline='middle';
context.fillText(i,x1*120,y1*120);
}
context.closePath();
context.restore();
//////////////////////////////////////////////////大刻度
context.save();
context.beginPath();
for(var i=0;i<12;i++){
var x2=Math.sin(i*deg);
var y2=-Math.cos(i*deg);
context.moveTo(x2*148,y2*148);
context.lineTo(x2*135,y2*135);
}
context.strokeStyle='#fff';
context.lineWidth=4;
context.stroke();
context.closePath();
context.restore();
//////////////////////////////////////////////////小刻度
context.save();
var deg1=2*Math.PI/60;
context.beginPath();
for(var i=0;i<60;i++){
var x2=Math.sin(i*deg1);
var y2=-Math.cos(i*deg1);
context.moveTo(x2*146,y2*146);
context.lineTo(x2*140,y2*140);
}
context.strokeStyle='#fff';
context.lineWidth=2;
context.stroke();
context.closePath();
context.restore();
///////////////////////////////////////////////////文字
context.save();
context.strokeStyle="#fff";
context.font=' 34px sans-serif';
context.textAlign='center';
context.textBaseline='middle';
context.strokeText('canvas',0,65);
context.restore();
/////////////////////////////////////////////////new Date
var time=new Date();
var h=(time.getHours()%12)*2*Math.PI/12;
var m=time.getMinutes()*2*Math.PI/60;
var s=time.getSeconds()*2*Math.PI/60;</p> <p>////////////////////////////////////////////////时针
context.save();
context.rotate( h + m/12 + s/720) ;
context.beginPath();
context.moveTo(0,6);
context.lineTo(0,-85);
context.strokeStyle="#fff";
context.lineWidth=6;
context.stroke();
context.closePath();
context.restore();
//////////////////////////////////////////////分针
context.save();
context.rotate( m+s/60 ) ;
context.beginPath();
context.moveTo(0,8);
context.lineTo(0,-105);
context.strokeStyle="#fff";
context.lineWidth=4;
context.stroke();
context.closePath();
context.restore();
/////////////////////////////////////////////秒针
context.save();
context.rotate( s ) ;
context.beginPath();
context.moveTo(0,10);
context.lineTo(0,-120);
context.strokeStyle="#fff";
context.lineWidth=2;
context.stroke();
context.closePath();
context.restore();
context.restore();/////////////////////////////栈出
setTimeout(draw, 1000);/////////////////////////////计时器</p> <p>}</p> <p></script>
</body>
</html>
HTML / CSS 相关文章推荐
一篇文章带你学习CSS3图片边框
Nov 04 HTML / CSS
html5+CSS3+JS实现七夕言情功能代码
Aug 28 HTML / CSS
html5本地存储_动力节点Java学院整理
Jul 12 HTML / CSS
Html5移动端弹幕动画实现示例代码
Aug 27 HTML / CSS
用HTML5实现手机摇一摇的功能的教程
Oct 30 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
Jan 09 HTML / CSS
HTML5在线预览PDF的示例代码
Sep 14 HTML / CSS
Canvas 帧动画吃苹果小游戏
Aug 05 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
Aug 13 HTML / CSS
AmazeUI 等分网格的实现示例
Aug 25 HTML / CSS
Css预编语言及区别详解
Apr 25 HTML / CSS
css之clearfix的用法深入理解(必看篇)
May 21 HTML / CSS
24个canvas基础知识小结
Dec 17 #HTML / CSS
html5使用canvas绘制文字特效
Dec 15 #HTML / CSS
html5使用canvas绘制太阳系效果
Dec 15 #HTML / CSS
html5使用canvas绘制一张图片
Dec 15 #HTML / CSS
html5使用canvas画三角形
Dec 15 #HTML / CSS
html5使用canvas画空心圆与实心圆
Dec 15 #HTML / CSS
html5使用canvas画一条线
Dec 15 #HTML / CSS
You might like
php实现随机生成易于记忆的密码
2015/06/19 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
python实现自动登录
2018/09/17 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
python圣诞树编写实例详解
2020/02/13 Python
python 实现控制鼠标键盘
2020/11/27 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
网络教育自我鉴定
2013/11/01 职场文书
超市开学活动方案
2014/03/01 职场文书
新学期决心书
2014/03/11 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
通知范文怎么写
2015/04/16 职场文书
公司员工手册范本
2015/05/14 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
移除Selenium中window.navigator.webdriver值
2022/06/10 Python