使用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 相关文章推荐
利用CSS的Sass预处理器(框架)来制作居中效果
Mar 10 HTML / CSS
一款纯css3实现的漂亮的404页面的实例教程
Nov 27 HTML / CSS
一款基于css3的列表toggle特效实例教程
Jan 04 HTML / CSS
CSS的background属性及CSS3的背景图片设置总结
Jun 13 HTML / CSS
CSS3实现可爱的小黄人动画
Jul 11 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
Nov 17 HTML / CSS
使用HTML5 IndexDB存储图像和文件的示例
Nov 05 HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
Dec 13 HTML / CSS
HTML5制作表格样式
Nov 15 HTML / CSS
HTML5页面中尝试调起APP功能
Sep 12 HTML / CSS
HTML5获取当前地理位置并在百度地图上展示的实例
Jul 10 HTML / CSS
canvas实现滑动验证的实现示例
Aug 11 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
phpBB BBcode处理的漏洞
2006/10/09 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
PHP生成器简单实例
2015/05/13 PHP
PHP正则验证Email的方法
2015/06/15 PHP
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
微信小程序slider组件使用详解
2018/01/31 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
python检测服务器是否正常
2014/02/16 Python
Python实现端口复用实例代码
2014/07/03 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
python实现二叉查找树实例代码
2018/02/08 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
pyttsx3实现中文文字转语音的方法
2018/12/24 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
美国存储和组织商店:The Container Store
2017/08/16 全球购物
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
党建工作经验交流材料
2014/05/25 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
python文件与路径操作神器 pathlib
2022/04/01 Python
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技