canvas荧光表源码分享

emlog教程 3年前 (2018) Mgo
0

无聊看了一下网页制作从入门到放弃的书,看到一个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

转载自:http://www.youngxj.cn/479.html

版权声明:Mgo 发表于 2018-06-04 9:03:25。
转载请注明:canvas荧光表源码分享 | 站长聚集地

暂无评论

暂无评论...