专栏首页Youngxjcanvas荧光表源码分享

canvas荧光表源码分享

无聊看了一下网页制作从入门到放弃的书,看到一个canvas表盘案例觉得不错,就搞出来美化了一下,就是这个鸟样子

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>canvas钟表</title>
	<meta name="Keywords" content="canvas钟表">
	<meta name="author" content="Youngxj">
	<style type="text/css">
	body{margin:0;}
</style>
</head>
<body onload="run()">
	<canvas id="canvas" width=320 height=320 >如果你看到这段文字,说明你的浏览器弱爆了!</canvas>
	<script>
		window.onload=draw;
		function draw() {
			var canvas=document.getElementById('canvas');
			var context=canvas.getContext('2d');
			context.save();
			//改变表盘中心位置
			context.translate(160,160);
			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*160,y*160); 
			}
			var c=context.createRadialGradient(0,0,0,0,0,130);
			//改变表盘背景颜色(可渐变)
			c.addColorStop(0,"#000000");
			c.addColorStop(1,"#000000")
			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="green";
				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='green';
			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='green';
			context.lineWidth=2;
			context.stroke();
			context.closePath(); 
			context.restore(); 

			context.save();
			// 表盘文字颜色、字体大小等
			context.strokeStyle="green";
			context.font=' 13px sans-serif';
			context.textAlign='center';
			context.textBaseline='middle';
			// 改变表盘中间文字内容
			context.strokeText(getwork(),0,45); 
			context.strokeText(startTime(),0,65);
			context.strokeText(nyr(),0,85); 
			context.restore(); 

			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;
			context.save();
			context.rotate( h + m/12 + s/720) ;
			context.beginPath();
			context.moveTo(0,6);
			context.lineTo(0,-85);
			context.strokeStyle="green";
			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="green";
			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="green";
			context.lineWidth=2;
			context.stroke();
			context.closePath();
			context.restore(); 
			context.restore();
			setTimeout(draw, 1000);
		}
		// 当前时间
		function startTime(){
			var today=new Date();
			var h=today.getHours();
			var m=today.getMinutes();
			var s=today.getSeconds();
			m=checkTime(m);
			s=checkTime(s);
			return h+":"+m+":"+s;
			t=setTimeout(function(){startTime()},500);
		}
		function checkTime(i){
			if (i<10){
				i="0" + i;
			}
			return i;
		}
		// 当前星期
		function getwork(){
			var l = ["日","一","二","三","四","五","六"];
			var d = new Date().getDay();
			var str = '星期'+l[d];
			return str;
		}
		// 当前年月日
		function nyr(){
			var myDate = new Date();
			return myDate.toLocaleDateString();

		}
	</script>
</body>
</html>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [教程]系统漏洞渗透

    Youngxj
  • QQ红名域名报毒解决小工具-短网址生成

    Youngxj
  • EMLOG评论获取QQ资料

    Youngxj
  • Canvas绘图——2d表

    初学JavaScript,用Canvas画一个表。主要用到昨天学的间歇调用(setInterval)。 方法和属性介绍 context.beginPath()、...

    刘开心_1266679
  • HTML5之Canvas

    document.createElement("canvas").getContext("2d");

    疯狂的技术宅
  • canvas 实现自定义钟表

    参考博客:https://www.cnblogs.com/liugang-vip/p/3557983.html

    acoolgiser
  • HTML5动态时钟

    felix
  • Canvas 基本绘制(下)

    HTML5学堂:在前一篇文章《Canvas 基本绘制(上)》当中,我们为大家介绍了Canvas的基本知识——什么是Canvas、如何使用Canvas进行图像的绘...

    HTML5学堂
  • Spring bean注解配置(1)—— @Component

    Spring自带的@Component注解及扩展@Repository、@Service、@Controller,如图:

    浩Coding
  • 06. Web大前端时代之:HTML5+CSS3入门系列~HTML5 画布(上)

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 点击原文,查看笔...

    逸鹏

扫码关注云+社区

领取腾讯云代金券