写一个关于电子的大气的js+canvas背景特效
时间: 2023-07-16 14:16:05 浏览: 108
以下是一个简单的电子大气的js+canvas背景特效:
HTML代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>电子大气背景特效</title>
</head>
<body>
<canvas id="canvas"></canvas>
<script src="main.js"></script>
</body>
</html>
```
JS代码:
```javascript
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var width = canvas.width = window.innerWidth;
var height = canvas.height = window.innerHeight;
var particles = [];
var particleCount = 100;
for(var i = 0; i < particleCount; i++) {
particles.push(new Particle());
}
function Particle() {
this.x = Math.random() * width;
this.y = Math.random() * height;
this.vx = Math.random() * 2 - 1;
this.vy = Math.random() * 2 - 1;
this.size = Math.random() * 3 + 1;
}
function draw() {
ctx.clearRect(0, 0, width, height);
ctx.fillStyle = "rgba(255, 255, 255, 0.2)";
for(var i = 0; i < particles.length; i++) {
var p = particles[i];
ctx.beginPath();
ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);
ctx.fill();
p.x += p.vx;
p.y += p.vy;
if(p.x < 0 || p.x > width) {
p.vx *= -1;
}
if(p.y < 0 || p.y > height) {
p.vy *= -1;
}
}
requestAnimationFrame(draw);
}
draw();
```
这段代码创建了一个粒子数组,每个粒子具有随机的位置、速度和大小。在 `draw` 函数中,我们首先清除画布,然后为每个粒子绘制一个圆形,并更新其位置。如果粒子到达画布的边缘,则将其速度反向。最后,使用 `requestAnimationFrame` 循环调用 `draw` 函数,创建动画效果。
阅读全文