在PHP网上下载了一个简易时针代码(自己看明白后模仿方法略有不同)

原创 2018-11-14 03:36:23 391
摘要:<!DOCTYPE html> <html> <head> <title>时钟</title> </head> <body> <canvas id="box"></canvas> </body> <script type=
<!DOCTYPE html>
<html>
<head>
	<title>时钟</title>
</head>
<body>
<canvas id="box"></canvas>
</body>
<script type="text/javascript">
var box=document.getElementById('box');
box.width=500;
box.height=500;
//判断浏览器是否支持,源码无本操作
if(box.getContext){
	var	boxcont=box.getContext('2d');
}
else{
	alert("浏览器不支持");
}
//画出外圆
function aa(){
boxcont.clearRect(0,0,box.width,box.height);
boxcont.beginPath();
boxcont.arc(250,250,250,0,2*Math.PI);
boxcont.strokeStyle='#aaa';
boxcont.stroke();
//两分钟格
boxcont.beginPath();
var tangleR=0;
for(var i=0;i<360;i++){
	var x;var y;
	boxcont.beginPath();
	boxcont.moveTo(250,250);
	x=250+Math.cos(tangleR* Math.PI / 180 ) * (250); 
	y=250+Math.sin(tangleR* Math.PI / 180 ) * (250); 
	tangleR++;
	boxcont.strokeStyle='#ccc';
	boxcont.lineTo(x,y);
	boxcont.stroke();
}
boxcont.beginPath();
boxcont.arc(250,250,235,0*(Math.PI/180),360*(Math.PI/180));
boxcont.fillStyle='#ffffff';
boxcont.fill();
//画12分钟格
for(var i=0;i<360;i++){
	var x;var y;
	boxcont.beginPath();
	boxcont.moveTo(250,250);
	x=250+Math.cos(tangleR* Math.PI / 180 ) * (250); 
	y=250+Math.sin(tangleR* Math.PI / 180 ) * (250); 
	tangleR=tangleR+6;
	boxcont.strokeStyle='#ccc';
	boxcont.lineTo(x,y);
	boxcont.stroke();
}
boxcont.beginPath();
boxcont.arc(250,250,220,0*(Math.PI/180),360*(Math.PI/180));
boxcont.fillStyle='#ffffff';
boxcont.fill();
//画1-12小时
 var  tangleR2=-60;
 for(var i=0;i<12;i++){
	var x;var y;
	boxcont.beginPath();
	boxcont.moveTo(250,250);
	x=250+Math.cos(tangleR2* Math.PI / 180 ) * (195); 
	y=250+Math.sin(tangleR2* Math.PI / 180 ) * (195); 
	tangleR2=tangleR2+30;
	boxcont.fillStyle='#aaa';
	boxcont.fillText(''+(i+1),x,y);
	boxcont.fill();
 }
//画中心圆点
boxcont.beginPath();
boxcont.arc(250,250,5,0*(Math.PI/180),360*(Math.PI/180));
boxcont.stroke();
boxcont.fill();
//获取时间并转换为坐标
	var time=new Date();
	var h=time.getHours();
	var m=time.getMinutes();
	var s=time.getSeconds();
	var mj=m*6+(s/60)*6-90;//转换为弧度减去90是为了从12点方向开始
	var sj=s*6-90;
	var hj=(h+1)*15+(m/60+1)*15+(s/3600+1)*15-90;//加1是为了把0-23变成1-24,乘以15是变成360度的弧度
	
	x0=250+Math.cos(hj* Math.PI / 180 ) * (250-120); 
	x1=250+Math.cos(mj* Math.PI / 180 ) * (250-100); 
	x2=250+Math.cos(sj* Math.PI / 180 ) * (250-60); 
	y0=250+Math.sin(hj* Math.PI / 180 ) * (250-120); 
	y1=250+Math.sin(mj* Math.PI / 180 ) * (250-100); 
	y2=250+Math.sin(sj* Math.PI / 180 ) * (250-60); 
    //画时针
    boxcont.beginPath();
	boxcont.moveTo(250,250);
	boxcont.lineTo(x0,y0);
	boxcont.stroke();
    //画分针
	boxcont.beginPath();
	boxcont.moveTo(250,250);
	boxcont.lineTo(x1,y1);
	boxcont.stroke();
    //画秒针
	boxcont.beginPath();
	boxcont.moveTo(250,250);
	boxcont.lineTo(x2,y2);
	boxcont.stroke();
	}
	//a每秒钟调用aa()一次即每秒指针动一次
	setInterval(function(){
		aa();
},1000)
</script>
</html>


批改老师:韦小宝批改时间:2018-11-14 09:10:27
老师总结:嗯!很不错!知道自己找点案例来模仿很不错啊!但是每次都得记得要有总结!这样学的才快哦~继续加油吧!!!

发布手记

热门词条