JS+H5 Canvas实现时钟效果

5 篇文章 0 订阅
1 篇文章 0 订阅

用JavaScript+Canvas来实现最简单的时钟效果。

效果图:

先看html代码:

<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/demo3.js" ></script>
	</head>
	<body>
		<canvas id = "canvas"></canvas>
	</body>
</html>

JavaScript代码:

var canvas,context;
function draw(){//定义划时钟的方法
	var data = new Date();
	var hHoure = data.getHours();
	var mMin = data.getMinutes();
	var sSec = data.getSeconds();
	var hValue = (hHoure*30+mMin/2-90)*Math.PI/180; 
	var mValue = (mMin*6-90)*Math.PI/180;
	var sValue = (sSec*6 -90)*Math.PI/180;
	var x = 200,y = 200,r = 150;

	context.clearRect(0,0,canvas.width,canvas.height);
	context.moveTo(x,y);
	context.arc(x,y,r,0,6*Math.PI/180,false);
	//
	context.beginPath();
	context.lineWidth = 1;
	for(var i = 0;i<60;i++){
		context.moveTo(x,y);
		context.arc(x,y,r,6*i*Math.PI/180,6*(i+1)*Math.PI/180,false);
	}
	context.closePath();
	context.stroke();
	//
	context.beginPath();
	context.fillStyle = "white";
	context.moveTo(x,y);
	context.arc(x,y,r/1.1,-0,2*Math.PI,false);
	context.closePath();
	context.fill();
	//	
	context.beginPath();
	context.lineWidth = 3;
	for(var i = 0;i<12;i++){
		context.moveTo(x,y);
		context.arc(x,y,r,30*i*Math.PI/180,30*(i+1)*Math.PI,false);
	}
	context.closePath();
	context.stroke();
	//
	context.beginPath();
	context.fillStyle = "white";
	context.moveTo(x,y);
	context.arc(x,y,r/1.12,0,2*Math.PI,false);
	context.closePath();
	context.fill();
	
	context.beginPath();
	context.fillStyle = "black";
	context.moveTo(x,y);
	context.arc(x,y,r/30,0,2*Math.PI,false);
	context.fill();		
	//
	context.beginPath();
	context.lineWidth = 5;
	context.moveTo(x,y);
	context.arc(x,y,r/2.5,hValue,hValue,false);
	context.stroke();
	//
	context.beginPath();
	context.lineWidth = 3;
	context.moveTo(x,y);
	context.arc(x,y,r/2,mValue,mValue,false);
	context.stroke();	
	//
	context.beginPath();
	context.lineWidth = 2;
	context.moveTo(x,y);
	context.arc(x,y,r/1.6,sValue,sValue,false);
	context.stroke();
}
window.onload = function(){
	canvas = document.getElementById('canvas');
	context = canvas.getContext('2d');
	canvas.height = 500;
	canvas.width = 500;
	setInterval(draw,1000);	
	draw();	
}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值