document.addEventListener('click', function (e) { var x = e.clientX; var y = e.clientY; drawFirework(x, y); });修改为自动播放
时间: 2024-03-18 22:40:56 浏览: 58
好的,如果你要将烟花效果改为自动播放,可以将上述代码中的点击事件修改为定时器,以达到自动播放的效果。以下是修改后的代码:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>烟花绽放</title>
<style>
#canvas {
background: #000;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
h1 {
color: #fff;
text-align: center;
position: absolute;
top: 50%;
width: 100%;
font-size: 5rem;
font-weight: bold;
transform: translateY(-50%);
}
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<h1>杨文建</h1>
<script>
// 获取canvas元素
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
// 设置canvas宽高
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
// 烟花粒子数组
var particles = [];
// 烟花粒子数量
var particleCount = 30;
// 烟花粒子构造函数
function Particle(x, y, color) {
this.x = x;
this.y = y;
this.color = color;
this.radius = 2;
this.vx = Math.random() * 10 - 5;
this.vy = Math.random() * 10 - 5;
this.gravity = 0.2;
}
// 烟花绘制函数
function drawFirework(x, y) {
// 随机颜色
var color = 'rgb(' + Math.floor(Math.random() * 255) + ',' + Math.floor(Math.random() * 255) + ',' + Math.floor(Math.random() * 255) + ')';
// 创建烟花粒子
for (var i = 0; i < particleCount; i++) {
particles.push(new Particle(x, y, color));
}
// 绘制烟花
for (var j = 0; j < particles.length; j++) {
ctx.beginPath();
ctx.arc(particles[j].x, particles[j].y, particles[j].radius, 0, Math.PI * 2);
ctx.fillStyle = particles[j].color;
ctx.fill();
// 烟花粒子运动
particles[j].x += particles[j].vx;
particles[j].y += particles[j].vy;
particles[j].vy += particles[j].gravity;
particles[j].radius -= 0.02;
}
}
// 自动播放烟花效果
setInterval(function() {
var x = Math.random() * window.innerWidth;
var y = Math.random() * window.innerHeight;
drawFirework(x, y);
}, 1000);
</script>
</body>
</html>
```
在上述代码中,我们用 `setInterval()` 函数来定时执行烟花效果的绘制函数,每隔1秒钟随机生成一组坐标,然后调用 `drawFirework()` 函数进行绘制。你可以将上述代码保存为HTML文件,然后用浏览器打开,就可以看到自动播放的烟花效果。
阅读全文