canvas绘制表盘时钟
话不多说,请看代码:
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>canvas绘制表盘</title>
</head>
<body>
<canvasid='box'width="500"height="500">
您的浏览器不支持canvas
</canvas>
<script>
varbox=document.getElementById('box');
varcxt=box.getContext('2d');
//时钟动起来
vartimer=null;
functionclock(){
vardate=newDate();
varh=date.getHours();
h=h+h/60;
h=h>12?h-12:h;
varm=date.getMinutes();
vars=date.getSeconds();
//清画布
cxt.clearRect(0,0,500,500);
//画表盘
cxt.strokeStyle='#f0f';
cxt.lineWidth=6;
cxt.beginPath();
cxt.arc(250,250,100,0,2*Math.PI);
cxt.stroke();
//画时钟刻度
for(vari=0;i<12;i++){
cxt.save();
cxt.translate(250,250);
cxt.rotate(30*i*Math.PI/180);
cxt.lineWidth=3;
cxt.beginPath();
cxt.moveTo(0,-80);
cxt.lineTo(0,-92);
cxt.stroke();
cxt.restore();
}
//画分钟刻度
for(vari=0;i<60;i++){
cxt.save();
cxt.translate(250,250);
cxt.rotate(6*i*Math.PI/180);
cxt.lineWidth=2;
cxt.beginPath();
cxt.moveTo(0,-86);
cxt.lineTo(0,-92);
cxt.stroke();
cxt.restore();
}
//画时针
cxt.save();
cxt.lineWidth=5;
cxt.translate(250,250);
cxt.rotate(h*30*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,6);
cxt.lineTo(0,-40);
cxt.stroke();
cxt.restore();
//画分针
cxt.save();
cxt.lineWidth=3;
cxt.translate(250,250);
cxt.rotate(m*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,8);
cxt.lineTo(0,-60);
cxt.stroke();
cxt.restore();
//画秒针
cxt.save();
cxt.lineWidth=1;
cxt.translate(250,250);
cxt.rotate(s*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,10);
cxt.lineTo(0,-75);
cxt.stroke();
cxt.restore();
//画中心的小圆固定三根针
cxt.save();
cxt.beginPath();
cxt.fillStyle='#0f0';
cxt.lineWidth=2;
cxt.translate(250,250);
cxt.arc(0,0,2,0,360,false);
cxt.stroke();
cxt.fill();
cxt.restore();
//画秒针上的园
cxt.save();
cxt.fillStyle='#f00';
cxt.lineWidth=2;
cxt.translate(250,250);
cxt.rotate(s*6*Math.PI/180);
cxt.beginPath();
cxt.arc(0,-60,2,0,360,false);
cxt.stroke();
cxt.fill();
cxt.restore();
}
clock();
timer=setInterval(clock,1000);
</script>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!