刚学H5, 请帮忙看看哪里错了
前朝遗民 2019-04-24 11:14:21 图书馆借的书,因为没有光盘,只是摸索着按书上敲了源码,难免漏了语句。画了一个时钟,本来是想每隔一秒,刷新一次,但不知道为什么每次都缩小了尺寸,怎么改?请各位大师指正,谢谢!
<html>
<head>
<title>No Title</title>
</head>
<body>
<canvas id="djx" style="border: 1px solid;" widht="400" height="400"> </canvas>
<script>
var canvas = document.getElementById("djx");
var context = canvas.getContext("2d");
time(canvas);
function time(canvas) {
clock();
setInterval(clock,1000);
}
function clock() {
var now = new Date();
context.save();
context.clearRect(0, 0, 150, 150);
context.translate(75, 75);
context.scale(0.4, 0.4);
context.rotate(-Math.PI / 2);
context.strokeStyle = "#000";
context.fillStyle = "white";
context.lineWidth = 8;
context.lineCap = "round";
context.save();
for (var i = 0; i < 12; i++) {
context.beginPath();
context.rotate(Math.PI / 6);
context.moveTo(100, 0);
context.lineTo(120, 0);
context.stroke();
}
//画时间刻度虚线
context.save();
context.lineWidth=5;
for (i=0;i<60;i++){
if (i%5!=0){
context.beginPath();
context.moveTo(117,0);
context.lineTo(120,0);
context.stroke();
}
context.rotate(Math.PI/30);
}
context.restore();
//设置时间变量
var sec=now.getSeconds();
var min=now.getMinutes();
var hr=now.getHours();
hr=hr>=12?hr-12:hr;
//绘制时针
context.save();
context.rotate(hr*(Math.PI/6)+(Math.PI/360)*min+(Math.PI/21600)*sec);
context.lineWidth=14;
context.beginPath();
context.moveTo(-20,0);
context.lineTo(80,0);
context.stroke();
context.restore();
//绘制分针
context.save();
context.rotate((Math.PI/30)*min+(Math.PI/1800)*sec);
context.lineWidth=10;
context.beginPath();
context.moveTo(-28,0);
context.lineTo(112,0);
context.stroke();
context.restore();
//绘制秒针
context.save();
context.rotate(sec*Math.PI/30);
context.strokeStyle="#D40000";
context.fillStyle="#D40000";
context.lineWidth=6;
context.beginPath();
context.moveTo(-30,0);
context.lineTo(83,0);
context.stroke();
context.restore();
//绘制边框
context.save();
context.beginPath();
context.lineWidth=14;
context.strokeStyle="#325FA2";
context.arc(0,0,142,0,Math.PI*2, true);
context.stroke();
context.restore();
}
</script>
</body>
</html>