W3C中文教程
全球最大最新的中文 Web 技术教程
HTML CSS SQL PHP COLORS MYSQL BOOTSTRAP
 

Canvas 时钟



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


第一部分 - 创建画布

时钟需要一个HTML容器。创建一个 300x300 像素的HTML画布:

HTML 代码:

<!DOCTYPE html>
<html>
<body>

<canvas id="canvas" width="300" height="300" 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="300" height="300" style="background-color:#333"></canvas>

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

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

为canvas对象创建一个2d绘图对象(var ctx):

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

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

var radius = canvas.height / 2;
Note 使用画布高度计算时钟半径,使时钟适用于所有画布大小。

将(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();
}