返回
过年玩烟花,教你用html+css+js做个炫酷烟花特效
前端
2024-02-09 05:30:05
过年啦,乡亲们,快来跟我学做烟花,包教包会(html+css+js)!
作为一名勤劳勤恳的老实人,我真是太卷了,过年都不忘来给大家送福利,上一期写了个新春小盲盒,今天给大家安排上炫酷的烟花特效,让大家在虚拟世界里也能感受到过年的喜庆气氛。
这次的烟花可是大制作,有两种模式可以自由切换,既可以鼠标点哪里哪里有烟花,也可以自动放烟花,是不是很酷炫?话不多说,先上效果图:
[烟花效果图]
是不是很美?心动不如行动,快来跟我一起动手做吧!
准备工作
在开始之前,我们需要准备一些东西:
- 一个文本编辑器(如记事本、Sublime Text、VS Code)
- 一个浏览器(如Chrome、Firefox、Edge)
- 一些基本的html、css和js知识
html部分
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
body {
background-color: black;
overflow: hidden;
}
canvas {
position: absolute;
top: 0;
left: 0;
}
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<script src="script.js"></script>
</body>
</html>
css部分
body {
background-color: black;
overflow: hidden;
}
canvas {
position: absolute;
top: 0;
left: 0;
}
js部分
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
// 窗口大小
const width = window.innerWidth;
const height = window.innerHeight;
// 烟花参数
const particleCount = 100; // 粒子数量
const particleSize = 2; // 粒子大小
const particleSpeed = 1; // 粒子速度
const particleLifetime = 100; // 粒子生命周期
const particleColors = ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF', '#00FFFF']; // 粒子颜色
// 烟花数组
const particles = [];
// 创建粒子
for (let i = 0; i < particleCount; i++) {
const particle = {
x: Math.random() * width,
y: Math.random() * height,
vx: (Math.random() - 0.5) * particleSpeed,
vy: (Math.random() - 0.5) * particleSpeed,
color: particleColors[Math.floor(Math.random() * particleColors.length)],
lifetime: particleLifetime
};
particles.push(particle);
}
// 渲染函数
function render() {
ctx.clearRect(0, 0, width, height); // 清除画布
// 更新粒子状态
for (let i = 0; i < particles.length; i++) {
const particle = particles[i];
particle.x += particle.vx;
particle.y += particle.vy;
particle.lifetime--;
// 如果粒子超出画布范围,则销毁
if (particle.x < 0 || particle.x > width || particle.y < 0 || particle.y > height || particle.lifetime <= 0) {
particles.splice(i, 1);
continue;
}
// 绘制粒子
ctx.fillStyle = particle.color;
ctx.fillRect(particle.x, particle.y, particleSize, particleSize);
}
// 下一帧继续渲染
requestAnimationFrame(render);
}
// 鼠标点击事件
canvas.addEventListener('click', (e) => {
// 创建新的粒子
const particle = {
x: e.clientX,
y: e.clientY,
vx: (Math.random() - 0.5) * particleSpeed,
vy: (Math.random() - 0.5) * particleSpeed,
color: particleColors[Math.floor(Math.random() * particleColors.length)],
lifetime: particleLifetime
};
particles.push(particle);
});
// 开始渲染
render();
使用方法
- 将代码复制到文本编辑器中,保存为html文件。
- 在浏览器中打开html文件。
- 点击鼠标,就可以在鼠标点击的位置生成烟花了。
- 也可以不点击鼠标,烟花会自动绽放。
怎么样,是不是很简单?赶快动手试试吧,让你的过年更有年味!
如果觉得教程有用,欢迎点赞、收藏、分享,让更多人也能学会做烟花特效!最后,祝大家新年快乐,万事如意!