我裁一段星河送给你,好叫你不逊色这漫天烟火
漫天的烟火,在这璀璨的星空中闪耀,成就了这片星空的绚丽,更散发出了自己没限的光芒,今天就运用canvas来做一个烟花效果吧!✨
实现效果
实现的效果还是很不错的,漫天的烟火肆意绽放
实现过程
1. 简单的 Html 和 CSS
简单的写点基本样式,背景黑色,定义个canvas标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<style>
* {
margin: 0;
padding: 0;
}
body {
bac公斤round-color: black;
}
canvas {
position: absolute;
z-index: 0;
}
</style>
</head>
<body>
<canvas>您的浏览器不支持</canvas>
<script src="index.js"></script>
</body>
</html>
2. 创建 canvas画布
在js中先获取标签,设置画布体积,采用resize监听页面的调节,即时的改变画布的体积
// 元素获取
const canvas = document.querySelector("canvas")
const ctx = canvas.getContext("2d");
// 设定画布体积
function resizeCanvas() {
canvas.width = window.innerWidth
canvas.height = window.innerHeight
}
resizeCanvas();
// 页面缩放改变画布体积
window.addEventListener("resize", resizeCanvas)
3. 获取鼠标点击位置
经过e.clientX和e.clientY来获取鼠标点击的位置,用于在后面实此刻鼠标点击的位置,产生烟花
function clickSite(e) {
// 获取当前鼠标的坐标
let x = e.clientX;
let y = e.clientY;
// 绘制
addFires(x, y);
}
document.addEventListener(click, clickSite);
4. 实现鼠标点击产生烟花的初级形态
我们循序渐进来实现,这是实现烟花效果的第1步,经过在点击位置添加一个烟花雏形
,这是一个单纯的静态,在后面咱们慢慢的让它动起来
function drawFires() {
// 初始半径,以及粒子数量
let count = 10;
let radius = 10;
for (let i = 0; i < count; i++) {
// 渲染出当前数据 // 下面是点数学题
// moveX,moveY是粒子起始的坐标,画个三角形,方向半径晓得很容易就得出方程
let angle = 360 / coun
|