使用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中文字镂空、透明值、阴影效果设置示例小结
Mar 07 HTML / CSS
CSS3 简写animation
May 10 HTML / CSS
用CSS3实现瀑布流布局的示例代码
Nov 10 HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
Apr 10 HTML / CSS
HTML5教程之html 5 本地数据库(Web Sql Database)
Apr 03 HTML / CSS
HTML5 中新的全局属性(整理)
Jul 31 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
Jan 01 HTML / CSS
简单的HTML5初步入门教程
Sep 29 HTML / CSS
从零实现一个自定义html5播放器的示例代码
Aug 01 HTML / CSS
htnl5利用svg页面高斯模糊的方法
Jul 20 HTML / CSS
浅谈HTML5中dialog元素尝鲜
Oct 15 HTML / CSS
Html5与App的通讯方式详解
Oct 24 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 删除记录实现代码
2009/03/12 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
jquery trim() 功能源代码
2011/02/14 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
Python中强大的命令行库click入门教程
2016/12/26 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
残疾人创业典型事迹
2014/02/01 职场文书
入学生会自荐书范文
2014/02/05 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
个人承诺书
2014/03/26 职场文书
投资协议书范本
2014/04/21 职场文书
党课培训心得体会
2014/09/02 职场文书
夫妻吵架保证书
2015/05/08 职场文书
公司回复函格式
2015/07/14 职场文书
电力培训学习心得体会
2016/01/11 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL