在react中使用Particles

news/2024/11/15 12:15:26/文章来源:https://www.cnblogs.com/shaobei/p/18334410

step one

首先封装一个粒子效果组件,option各项配置在tsparticles/react 有介绍。

// ParticleBackground.js
import React, { useEffect, useState } from "react";
import { loadSlim } from "@tsparticles/slim";
import Particles, { initParticlesEngine } from "@tsparticles/react";const ParticleBackground = React.memo(() => {const [init, setInit] = useState(false);const particlesOptions = {background: {color: {value: "FFB6C1", // 背景颜色设置},},fpsLimit: 120, // 每秒帧数限制为120fpsinteractivity: {events: {onClick: {enable: true, // 启用点击事件mode: "push", // 点击时推送粒子},onHover: {enable: true, // 启用悬停事件mode: "repulse", // 悬停时排斥粒子},resize: true, // 启用窗口大小调整事件},modes: {push: {quantity: 2, // 点击时添加的粒子数量},repulse: {distance: 80, // 悬停时排斥粒子的距离duration: 0.4, // 悬停排斥效果的持续时间},},},particles: {color: {value: "#ffffff", // 粒子颜色为白色},links: {color: "#ffffff", // 粒子连线颜色为白色distance: 150, // 粒子连线的最大距离enable: true, // 启用粒子连线opacity: 0.5, // 粒子连线透明度width: 1, // 粒子连线宽度},move: {direction: "none", // 粒子移动方向enable: true, // 启用粒子移动outModes: {default: "bounce", // 粒子碰到边界时反弹},random: true, // 粒子随机移动speed: 2.5, // 粒子移动速度straight: false, // 粒子不沿直线移动},number: {density: {enable: true, // 启用粒子密度计算area: 800, // 粒子活动区域面积},value: 180, // 粒子数量},opacity: {value: 0.5, // 粒子透明度},shape: {type: "circle", // 粒子形状为圆形},size: {value: { min: 1, max: 5 }, // 粒子大小范围},},detectRetina: true, // 启用视网膜屏优化};// 使用useEffect钩子初始化粒子效果引擎useEffect(() => {initParticlesEngine(async (engine) => {await loadSlim(engine);}).then(() => {setInit(true);});}, []);// 粒子效果容器加载回调const particlesLoaded = (container) => {// console.log(container);};return (<>{init && (<Particlesid="tsparticles"particlesLoaded={particlesLoaded}options={particlesOptions}/>)}</>);
});ParticleBackground.displayName = "ParticleBackground";export default ParticleBackground;

next

在组件中使用

import React from "react";
import ParticleBackground from "./ParticleBackground";
export default function demo() {return (<><ParticleBackground /></>);
}

效果如下,可以通过option进行偏好配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/774544.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Game UI Kit 游戏UI 开发套件

Game UI Kit https://assetstore.unity.com/zh-CN/search#q=Game%20UI%20Kit%20 适合个人开发者 UI 套件

FreeRtos笔记1

记录学习过程: 了解简单的Arm架构,CPU中各种寄存器的作用:堆的含义(就是空闲的内存),堆的作用是用来管理这些内存(堆函数,链表):内存的栈-->每个任务都有独属于自己的栈,在自己的任务栈中会保存函数,局部变量,还有自己的现场:任务是如何进行的:任务的调度过程:

图片弹窗放大代码

代码链接 https://www.5axxw.com/questions/simple/37xmlj 效果图展示全屏展示

【日记】9 个发箍只有 2 个能压住头发……(513 字)

正文今天下午实在有些受不了,从正大门外走了出去。抬头望着天空,望着那些悠然自在纯白无暇的云,竟然有些眼睛疼,刺激到想要流泪。我在室内待得太久太久了。似乎很久没有在这种时间段出来过了。下午快下班的时候,有个客户拿了一张远古的转账支票出来,说要转账。我懵了,我…

go安装playwright-go

写go 调用Playwright时,遇到 could not start Playwright: please install the driver (v1.45.1) and browsers first: %!w(<nil>) 报错 解决方式:安装驱动和浏览器依赖。go run github.com/playwright-community/playwright-go/cmd/playwright install --with-deps 测…

论文阅读:End to End Chinese Lexical Fusion Recognition with Sememe Knowledge

模型论文中提出的模型旨在联合处理提及词汇和共指关系。 该模型由一个编码器、一个用于提及识别的CRF解码器和一个用于共指识别的BiAffine解码器组成。 此外,利用HowNet的sememe知识增强了编码器。基础模型编码器:利用 BERT 作为基本编码器:\[h_1 ... h_n = BERT(c_1,...,c_…

敏捷产品经理实训:成为高效产品领导者的秘诀

敏捷产品经理实训:成为高效产品领导者的秘诀​ 在当今快节奏的市场环境中,产品经理和产品负责人需要快速响应市场变化,推动产品创新,以满足用户不断变化的需求。敏捷产品经理实训课程专为产品经理和产品负责人设计,旨在帮助他们掌握敏捷方法,提高团队协作和产品开发效率,…

P2163 [SHOI2007] 园丁的烦恼 题解

题目传送门 题目大意: 在一个平面直角坐标系上,给定 \(n\) 个点的坐标 \((x,y)\),\(m\) 次询问,每次询问一个矩形范围内的点的数量,此矩形用 \(\{a, b, c, d\}\) 来描述,其中 \((a, b)\) 为左下角,\((c, d)\) 为右上角。 思路: 不难将题目转化为:给定一个长度为 \(n\)…

金牌AI销售机器人,轻松直翻业绩!

本文由 ChatMoney团队出品老板们,你们现在的压力是不是越来越大了?员工和往年是一样的,但是业绩却比往年差一半! 尤其是电商行业,是“优化”员工还是广招人才?人工成本都很高。还得把业绩拉上去?怎么办呢? 目前我们采用Chatmoney全能知识库AI销售系统,用人工智能来实现…

S32G3任务抢占

通过S32G3 的STM定时器 实现任务任务抢占 1、创建一个空工程 2、创建完成后先生成一版代码 3、编译 4、添加user文件夹来存放自己的代码my_os.h/*********************************************************************************************************************/ /…

我们的网站被狗爬了!

大家好,我是程序员鱼皮。 世风日下,人心不古。我们的程序员面试刷题网站 《面试鸭》 才刚刚上线了一个多月,就由于过于火爆,被不少同行和小人发起网络攻击。 而且因为我们已经有 4500 多道人工整理的企业高频面试题、100 多个各方向的面试题库、大厂面试官原创的优质题解,…

Nmap 7.95 - Zenmap 汉化版,端口扫描、网络嗅探工具

Nmap 7.95 - Zenmap 汉化版 本来想找一个端口扫描工具,先找到了 Angry IP Scanner 用了一下,有时候扫不到,功能也比较单一。最后找到了 Nmap,这个功能要强大很多。网上没有最新的汉化版本,老版本的汉化还存在BUG,于是自己动手汉化了一下。功能介绍:Nmap是一款功能强大的…