外链论坛

 找回密码
 立即注册
搜索
查看: 58|回复: 2

web前端---canvas绚丽烟花特效

[复制链接]

2899

主题

1万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96066391
发表于 2024-6-30 04:44:42 | 显示全部楼层 |阅读模式

我裁一段星河送给你,好叫你不逊色这漫天烟火

漫天的烟火,在这璀璨的星空中闪耀,成就了这片星空的绚丽,更散发出了自己限的光芒,今天就运用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
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-8-29 22:31:53 | 显示全部楼层
认真阅读了楼主的帖子,非常有益。
回复

使用道具 举报

3004

主题

1万

回帖

9996万

积分

论坛元老

Rank: 8Rank: 8

积分
99969112
发表于 2024-9-26 09:38:20 | 显示全部楼层
我深受你的启发,你的话语是我前进的动力。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-10-19 07:27 , Processed in 0.061497 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.