目录
遇到的问题:
使用外链将js链入后网页上并不显示js部分的内容,后直接将js部分使用script标签写在html内
效果:
截图时间为下午16:25
源码:
<!DOCTYPE html>
<html>
<head>
<Meta charset="utf-8">
<title>4.1手绘时钟</title>
</head>
<body>
<h3>手绘时钟</h3>
<hr >
<canvas id="clockCanvas" width="300" height="300" style="border: 1px solid">
对不起,您的浏览器不支持HTML画布API
</canvas>
<script type="text/javascript">
var c=document.getElementById('clockCanvas');
var ctx=c.getContext('2d');
//绘制时钟
function drawClock(){
ctx.save();
ctx.clearRect(0,0,300,300);
ctx.translate(150,150);
ctx.rotate(-Math.PI/2);
ctx.linewidth=6;
ctx.lineCap='round';
for (var i=0;i<12;i++){
ctx.beginPath();
ctx.rotate(Math.PI/6);
ctx.moveto(100,0);
ctx.lineto(120,0);
ctx.stroke();
}
ctx.linewidth=5;
for (i=0;i<60;i++){
ctx.beginPath(118,0);
ctx.moveto(120,0);
ctx.stroke();
ctx.rotate(Math.PI/30);
}
var Now=new Date();
var s=Now.getSeconds();
var m=Now.getMinutes();
var h=Now.getHours();
if(h>12){
h-=12;
}
//绘制时针
ctx.save();
ctx.rotate(h*(Math.PI/6)+(Math.PI/360)*m+(Math.PI/21600)*s);
ctx.linewidth=12;
ctx.beginPath();
ctx.moveto(-20,0);
ctx.lineto(80,0);
ctx.stroke();
ctx.restore();
//绘制分针
ctx.save();
ctx.rotate((Math.PI/30)*m+(Math.PI/1800)*s);
ctx.linewidth=8;
ctx.beginPath();
ctx.moveto(-20,0);
ctx.lineto(112,0);
ctx.stroke();
ctx.restore();
//绘制秒针
ctx.save();ctx.rotate(s*Math.PI/30);
ctx.strokeStyle='red';
ctx.linewidth=6;
ctx.beginPath();
ctx.moveto(-30,0);
ctx.lineto(120,0);
ctx.stroke();
ctx.fillStyle='red';
ctx.beginPath();
ctx.arc(0,0,10,0,Math.PI*2,true);
ctx.fill();
ctx.restore();
//绘制表盘
ctx.linewidth=12;
ctx.strokeStyle='gray';
ctx.beginPath();
ctx.arc(0,0,140,0,Math.PI*2,true);
ctx.stroke();
ctx.restore();
}
setInterval('drawClock()',1000);
</script>
</body>
</html>