<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#my_canves {
display: block;
margin: auto;
}
</style>
</head>
<body>
<canvas id="my_canves" style="border: solid green;" width="400" height="300"></canvas>
<script>
window.onload = function(){
var ca = document.getElementById("my_canves");
var content = ca.getContext("2d");
cloc()
function cloc() {
//为防止在定时器第二次触发时,画布上的第一次的图影响第二次的图,孤儿清理画布
content.clearRect(0,0,200,200)
//绘制整个表盘
content.strokeStyle = "#000000";
content.beginPath();
content.arc(100, 100, 100, 0, Math.PI * 2, true);
content.closePath();
content.stroke();
//绘制中间的小实心圆
content.fillStyle = "#000000";
content.beginPath();
content.arc(100, 100, 5, 0, Math.PI * 2, true);
content.closePath();
content.fill();
//绘制12个时间的刻度
for(var i = 0; i < 12; i++) {
content.beginPath();
content.save();
content.translate(100, 100);
content.rotate(i * 30 * Math.PI / 180);
content.moveTo(0, 80);
content.lineTo(0, 100)
content.stroke();
content.restore();
content.closePath();
}
// 绘制分的时间刻度
for(var j = 0; j < 60; j++) {
content.beginPath();
content.save();
content.translate(100, 100);
content.rotate(j * 6 * Math.PI / 180);
content.moveTo(0, 100);
content.lineTo(0, 90);
content.stroke();
content.restore();
content.closePath()
}
//获取当前的时间:
var nowTime = new Date();
var hours = nowTime.getHours();
var minutes = nowTime.getMinutes();
var seconds = nowTime.getSeconds();
//调整时间为12小时计时
hours = hours > 12 ? hours - 12 : hours;
//根据当前的分得时间,调整当前的时的时间
hours = hours + minutes / 12;
//时针:
content.beginPath();
content.lineWidth = 5;
content.save();
content.translate(100,100);
content.rotate(hours*30*Math.PI/180);
content.moveTo(0,10);
content.lineTo(0,-60)
content.stroke();
content.restore();
content.closePath();
//分针:
content.beginPath();
content.lineWidth = 3;
content.save();
content.translate(100,100);
content.rotate(minutes*6*Math.PI/180);
content.moveTo(0,10);
content.lineTo(0,-70)
content.stroke();
content.restore();
content.closePath();
//秒针:
content.beginPath();
content.lineWidth = 1;
content.save();
content.translate(100,100);
content.rotate(seconds*6*Math.PI/180);
content.moveTo(0,10);
content.lineTo(0,-80)
content.stroke();
content.restore();
content.closePath();
}
setInterval(cloc,1000);
}
</script>
</body>
</html>