web页面实现图形动画效果,运用画布和定时器完整代码
时间: 2023-08-05 17:37:43 浏览: 51
以下是一个完整的使用画布和定时器实现图形动画效果的示例代码:
HTML:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Canvas Animation Demo</title>
</head>
<body>
<canvas id="myCanvas" width="400" height="400"></canvas>
<script src="animation.js"></script>
</body>
</html>
```
JavaScript(animation.js):
```
// 获取画布元素和绘图上下文
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
// 定义一个圆形对象
var circle = {
x: 200, // 圆心x坐标
y: 200, // 圆心y坐标
r: 50, // 半径
color: "#ff0000" // 颜色
};
// 绘制圆形
function drawCircle() {
ctx.beginPath();
ctx.arc(circle.x, circle.y, circle.r, 0, Math.PI*2);
ctx.fillStyle = circle.color;
ctx.fill();
ctx.closePath();
}
// 更新圆形位置
function updateCircle() {
circle.x += 2; // 每次向右移动2个像素
}
// 清除画布
function clearCanvas() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
// 定义动画函数
function animate() {
clearCanvas(); // 清除画布
updateCircle(); // 更新圆形位置
drawCircle(); // 绘制圆形
}
// 每隔10毫秒执行一次动画函数
setInterval(animate, 10);
```
在这个示例中,我们首先在HTML中定义了一个canvas元素和一个引用JavaScript文件的script标签。然后在JavaScript文件中,我们定义了一个圆形对象,以及三个函数:`drawCircle()`绘制圆形,`updateCircle()`更新圆形位置,`clearCanvas()`清除画布。最后,我们使用`setInterval()`函数来每隔10毫秒执行一次动画函数`animate()`,该函数依次清除画布、更新圆形位置、绘制圆形,从而实现了一个简单的动画效果。
希望这个完整的示例能够帮助你理解如何使用画布和定时器实现Web页面的图形动画效果。