HTML Canvas 模拟时钟

在这些章节中,我们将使用 HTML 画布构建一个模拟时钟。


第一部分 - 创建画布

时钟需要一个 HTML 容器。 创建一个 HTML 画布:

HTML code:

<!DOCTYPE html>
<html>
<body>

<canvas id="canvas" width="400" height="400" style="background-color:#333"></canvas>

<script>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var radius = canvas.height / 2;
ctx.translate(radius, radius);
radius = radius * 0.90
drawClock();

function drawClock() {
  ctx.arc(0, 0, radius, 0 , 2 * Math.PI);
  ctx.fillStyle = "white";
  ctx.fill();
}
</script>

</body>
</html>
亲自试一试 »


代码解释

将 HTML <canvas> 元素添加到您的页面:

<canvas id="canvas" width="400" height="400" style="background-color:#333"></canvas>

从 HTML 画布元素创建一个画布对象(var canvas):

var canvas = document.getElementById("canvas");

为画布对象创建一个二维绘图对象(var ctx):

var ctx = canvas.getContext("2d");

使用画布的高度计算时钟半径:

var radius = canvas.height / 2;

使用画布高度计算时钟半径,使时钟适用于所有画布尺寸。

将(绘图对象的)(0,0)位置重新映射到画布的中心:

ctx.translate(radius, radius);

减少时钟半径(至 90%)以在画布内很好地绘制时钟:

radius = radius * 0.90;

创建一个绘制时钟的函数:

function drawClock() {
  ctx.arc(0, 0, radius, 0 , 2 * Math.PI);
  ctx.fillStyle = "white";
  ctx.fill();
}