使用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和html制作泡沫对话框实现代码
Mar 21 HTML / CSS
CSS3网格的三个新特性详解
Apr 04 HTML / CSS
CSS3中媒体查询结合rem布局适配手机屏幕
Jun 10 HTML / CSS
纯CSS3实现移动端展开和收起效果的示例代码
Apr 26 HTML / CSS
CSS3实现div从下往上滑入滑出效果示例
Apr 28 HTML / CSS
HTML5验证以及日期显示的实现详解
Jul 05 HTML / CSS
HTML5 placeholder(空白提示)属性介绍
Aug 07 HTML / CSS
HTML5新增的8类INPUT输入类型介绍
Jul 06 HTML / CSS
HTML5通用接口详解
Jun 12 HTML / CSS
phonegap常用事件总结(必看篇)
Mar 31 HTML / CSS
html5简单示例_动力节点Java学院整理
Jul 07 HTML / CSS
解决HTML5手机端页面缩放的问题
Oct 27 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设计模式 Builder(建造者模式)
2011/06/26 PHP
PHP中$_SERVER使用说明
2015/07/05 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
jQuery之end()和pushStack()使用介绍
2012/02/07 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
Python字典操作简明总结
2015/04/13 Python
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
Python列表解析配合if else的方法
2018/06/23 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
网络维护中文求职信
2014/01/03 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
医院信息公开实施方案
2014/05/09 职场文书
贷款担保申请书
2014/05/20 职场文书
禁烟标语大全
2014/06/11 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
文明单位汇报材料
2014/12/24 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS