实现酷炫粒子背景效果

使用 particles.vue3 实现酷炫粒子背景效果

在这篇博客中,我们将介绍如何使用 particles.vue3 实现动态粒子背景,并详细讲解其配置参数和常见问题的解决方法。通过本文,你可以轻松在项目中应用并自定义粒子效果。
请添加图片描述


什么是 particles.vue3

particles.vue3tsparticles 的 Vue 3 包装器,可以帮助我们快速在 Vue 3 项目中集成动态粒子效果。它支持高度可定制的配置,并能创建各种炫酷的粒子背景,如粒子悬浮、连接、点击效果等。


快速开始

1. 安装依赖

首先,确保你的项目使用 Vue 3,然后安装 particles.vue3tsparticles

npm install particles.vue3 tsparticles
2. 在项目中注册插件

main.ts 中注册 particles.vue3

import { createApp } from 'vue';
import App from './App.vue';
import Particles from 'particles.vue3';const app = createApp(App);app.use(Particles);
app.mount('#app');

粒子背景的实现

完整代码

下面是一个简单的粒子背景示例:

  <!-- 容器:用于显示粒子背景 --><div><!-- tsparticles 组件 --><Particlesstyle="border: 1px solid red; width: 1200px; height: 600px; z-index: 99999999999;"id="tsparticles" :particlesInit="particlesInit" :particlesLoaded="particlesLoaded" :options="options" /></div>
</template><script setup lang="ts">
import { reactive } from "vue"; // 导入 Vue 的 reactive API
import { loadFull } from "tsparticles"; // 导入 tsparticles 的完整功能
import type { Engine } from "tsparticles-engine"; // 引擎类型,用于类型检查// 初始化粒子引擎的函数
const particlesInit = async (engine: Engine) => {// 加载完整的粒子功能await loadFull(engine);
};// 监听粒子加载完成事件的函数
const particlesLoaded = async (container: any) => {console.log("Particles container loaded", container);
};// 粒子效果的配置选项
const options = reactive({background: {color: {value: "#2c3e50", // 背景颜色},},fpsLimit: 60, // 限制帧率interactivity: {events: {onClick: { enable: true, mode: "push" }, // 鼠标点击触发"push"onHover: { enable: true, mode: ["grab", "repulse", "bubble"] }, // 鼠标悬停触发多种模式resize: true, // 窗口调整大小时适配},modes: {grab: {distance: 200, // 增强鼠标悬停时的连接距离links: { opacity: 1 }, // 增强连接线的透明度},bubble: {distance: 300, // 增强鼠标悬停时的气泡触发距离size: 30, // 增大粒子的气泡大小duration: 2, // 气泡效果持续时间opacity: 1, // 气泡粒子的透明度},push: { quantity: 4 }, // 鼠标点击添加粒子的数量repulse: {distance: 300, // 鼠标悬停时粒子被排斥的最大距离duration: 0.8, // 粒子被排斥的持续时间},},},particles: {color: { value: "#ffffff" }, // 粒子颜色links: {color: "#ffffff", // 连接线颜色distance: 150, // 连接线的最大长度enable: true, // 启用连接线opacity: 0.5, // 连接线的透明度width: 1, // 连接线宽度},collisions: { enable: true }, // 启用粒子碰撞move: {direction: "none", // 粒子移动方向enable: true, // 启用粒子移动outModes: "bounce", // 碰到边界时反弹random: false, // 禁用随机运动speed: 1, // 粒子运动速度straight: false, // 禁用直线运动},number: {value: 80, // 粒子数量density: { enable: true, area: 800 }, // 粒子密度},opacity: { value: 0.5 }, // 粒子透明度shape: { type: "circle" }, // 粒子形状size: { value: { min: 1, max: 5 }, random: true }, // 粒子大小范围},detectRetina: true, // 启用高分辨率显示支持
});</script><style>
/* tsparticles 容器样式 */
#tsparticles {position: relative;width: 100%; /* 设置宽度为全屏 */height: 100vh; /* 设置高度为全屏 */overflow: hidden; /* 隐藏溢出的内容 */
}
</style>

配置参数详解

核心参数
参数路径类型说明
background.color.valuestring背景颜色,例如 #2c3e50
fpsLimitnumber限制最大帧率(默认 60)。
interactivity.eventsobject定义鼠标点击、悬停等交互事件。
particles.color.valuestring粒子颜色,例如 #ffffff(白色)。
particles.linksobject配置粒子之间的连接线(颜色、长度、透明度等)。
particles.move.speednumber控制粒子运动速度(值越小速度越慢)。
particles.shape.typestring粒子形状,支持 circle, edge, triangle 等类型。
detectRetinaboolean启用视网膜屏优化。

常见问题及解决方案

1. 粒子背景没有显示
  • 原因:未正确注册插件或未引入完整功能。
  • 解决方法
    • 确保在 main.ts 中正确注册:
      import Particles from "particles.vue3";
      app.use(Particles);
      
2. 粒子动画过快
  • 原因:默认粒子速度较高。
  • 解决方法
    • 调整 particles.move.speed 值,例如:
      move: { speed: 1 }, // 设置速度为 1,减慢粒子运动
      
3. 悬停交互不够明显
  • 原因modes 配置默认值较低。
  • 解决方法
    • 调整悬停效果的距离和强度,例如:
      grab: { distance: 200, links: { opacity: 1 } },
      bubble: { distance: 300, size: 30, opacity: 1 },
      
4. 警告 The tsParticles version is different
  • 原因tsparticlesparticles.vue3 版本不一致。
  • 解决方法
    • 确保两者版本一致:
      npm install tsparticles@latest particles.vue3@latest
      
5. Sass 警告
  • 原因:Sass 使用了过时的 @import 语法。
  • 解决方法
    • 使用 @use 替代:
      @use './styles/base.scss';
      

总结

通过 particles.vue3,你可以轻松实现炫酷的粒子背景效果。本文详细介绍了配置参数和常见问题的解决方法,希望对你有所帮助。如果想更深入地定制粒子效果,可以参考 tsParticles 官方文档。

代码示例和常见问题解决,希望能让你快速上手! 🎉

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

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

相关文章

ubuntu16.04 VSCode下cmake+clang+lldb调试c++

VSCode下cmakeclanglldb调试c Ubuntu16.04 安装OpenCV4.5.4 文章目录 VSCode下cmakeclanglldb调试c1.安装clangclangdcmake2、打开VSCode&#xff0c;安装扩展插件3、编译4、Debug4.1 创建launch.json。4.2 配置setting.json 5. vscode安装配置clang-format插件5.1 Linux系统安…

在vue3中使用datav完整引入时卡在加载页面的解决方法

文件修改 文件&#xff1a;node_modules/dataview\datav-vue3/package.json // "module": "./es/index.js","module": "./es/index.mjs", // 修改后使用完整引入&#xff0c;需要为datav配置文件添加相应方法 文件&#xff1a;node…

AI agent 在 6G 网络应用,无人机群控场景

AI agent 在 6G 网络应用,无人机群控场景 随着 6G 时代的临近,融合人工智能成为关键趋势。借鉴 IT 行业 AI Agent 应用范式,提出 6G AI Agent 技术框架,包含多模型融合、定制化 Agent 和插件式环境交互理念,构建了涵盖四层结构的框架。通过各层协同实现自主环境感知等能力…

跨境电商SEO起步:关键词研究方法

SEO的重要性和必要性不言而喻&#xff0c;而在SEO的各大流程中&#xff0c;关键词研究同样重要&#xff0c;因为它在网站内容优化、产品标题和描述优化等方面都发挥重要作用。 一、从消费者视角出发 SEO是为了增加让消费者看到自己产品的可能性&#xff0c;因此要从消费者搜索…

开发环境搭建-1:配置 WSL (类 centos 的 oracle linux 官方镜像)

一些 Linux 基本概念 个人理解&#xff0c;并且为了便于理解&#xff0c;可能会存在一些问题&#xff0c;如果有根本上的错误希望大家及时指出 发行版 WSL 的系统是基于特定发行版的特定版本的 Linux 发行版 有固定组织维护的、开箱就能用的 Linux 发行版由固定的团队、社区…

关于回调函数(callback)

简介 在C中&#xff0c;回调函数是一种常见的编程技术&#xff0c;它允许你将一个函数作为参数传递给另一个函数&#xff0c;并在适当的时候调用它。回调函数通常用于事件处理、异步编程和模块化设计中。 1、函数指针&#xff1a;在C中&#xff0c;回调函数通常是通过函数指针…

【三维分割】Gaga:通过3D感知的 Memory Bank 分组任意高斯

文章目录 摘要一、引言二、主要方法2.1 3D-aware Memory Bank2.2 三维分割的渲染与下游应用 三、实验消融实验应用: Scene Manipulation 地址&#xff1a;https://www.gaga.gallery 标题&#xff1a;Gaga: Group Any Gaussians via 3D-aware Memory Bank 来源&#xff1a;加利福…

UE5 开启“Python Remote Execution“

demo 代码 remote_execution.py 远程调用UE5 python代码-CSDN博客 在启用 Unreal Engine 5&#xff08;UE5&#xff09;的“Python 远程执行”功能后&#xff0c;UE5 会启动一个 UDP 组播套接字服务&#xff0c;以监听来自外部应用程序的 Python 命令。 具体行为如下&#xf…

TangoFlux 本地部署实用教程:开启无限音频创意脑洞

一、介绍 TangoFlux是通过流匹配和 Clap-Ranked 首选项优化&#xff0c;实现超快速、忠实的文本到音频生成的模型。 本模型由 Stability AI 提供支持&#x1f680; TangoFlux 可以在单个 A40 GPU 上在 ~3 秒内生成长达 34.1kHz 的立体声音频。 二、部署 安装方式非常简单 1…

Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决

前言 在将 Spring Boot 项目升级至 3.3.4 版本后&#xff0c;遇到 Logback 配置的兼容性问题。本文将详细描述该问题的错误信息、原因分析&#xff0c;并提供调整日志回滚策略的解决方案。 错误描述 这是SpringBoot 3.3.3版本之前的回滚策略的配置 <!-- 日志记录器的滚动…

Vue 3中导航守卫(Navigation Guard)结合Axios实现token认证机制

在Vue 3中&#xff0c;导航守卫&#xff08;Navigation Guard&#xff09;用于拦截路由的变化&#xff0c;可以在用户访问页面前进行检查。结合Axios进行token认证机制时&#xff0c;我们可以通过导航守卫在路由跳转时&#xff0c;检查用户的认证状态&#xff0c;确保用户有有效…

Webrtc (1) - Windows 编译

最近项目上遇到webrtc wgc 的几个test case无法通过&#xff0c;与webrtc人员沟通后决定要自行修复一下(因为他们不想管…) 参考文档 https://webrtc.org/support/contributinghttps://chromium.googlesource.com/chromium/src//main/docs/#checking-out-and-building 以上两…

Python数据类型间的转换及eval函数

1.数据类型间的转换 x 10 y 3 z x / y # 除法运算&#xff0c;将运算的结果赋值给z print(z,type(z)) # 隐式转换&#xff0c;通过运算隐式地传了结果的类型# float类型转换为int类型&#xff0c;只保留整数部分&#xff0c;不会进行四舍五入 print(int(3.1542)) print(i…

influxdb+grafana+jmeter

influxdb influxd先启动 启动完成后执行 influxdb的端口号 grafana的启动 通过grafana-server.exe启动grafana 启动后打开 http://localhost:8087/

GeekHour

Linux Linux的是类Unix系统&#xff0c;作者是Linus&#xff0c;也是git的作者。符合GPL&#xff08;General Public License&#xff09;就可以Linux的使用、修改、再发布。 Linux四部分&#xff1a; 内核&#xff1a;驱动、内存管理、进程管理、文件系统、网络协议栈…。作…

【SpringCloud】黑马微服务学习笔记

目录 1. 关于微服务 ?1.1 微服务与单体架构的区别 ?1.2 SpringCloud 技术 2. 学习前准备 ?2.1 环境搭建 ?2.2 熟悉项目 3. 正式拆分 ?3.1 拆分商品功能模块 ?3.2 拆分购物车功能模块 4. 服务调用 ?4.1 介绍 ?4.2 RustTemplate?的使用 4.3 服务治理-注册中…

安装matlab2024a错误license checkout failed Error-8

问题&#xff1a; 忘记截图了&#xff0c;借用博主的图片。 记得安装过程中&#xff0c;目标网址才是你的安装地址&#xff0c;而不是前面的安装包地址。 解决方法&#xff1a; 1.将破解文件中"Crack\R2020a\bin\win64\matlab_startup_plugins\lmgrimpl"目录下的l…

Spring缓存注解@Cacheable详细介绍和实际使用案例

Cacheable是Spring框架中用于缓存方法返回结果的注解&#xff0c;它可以显著提高应用程序的性能&#xff0c;特别是对于一些计算密集型或频繁调用且结果不经常变化的方法。以下是关于Cacheable的详细介绍&#xff1a; 基本使用 添加依赖&#xff1a;使用Cacheable注解前&…

第10章:Python TDD优化货币类方法与引入工厂方法

写在前面 这本书是我们老板推荐过的&#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后&#xff0c;我突然思考&#xff0c;对于测试开发工程师来说&#xff0c;什么才更有价值呢&#xff1f;如何让 AI 工具更好地辅助自己写代码&#xff0c;或许…

解决 Django 5.1 中的 TemplateSyntaxError 错误

解决 Django 5.1 中的 TemplateSyntaxError 错误 在 Django 开发过程中&#xff0c;我们经常会遇到 TemplateSyntaxError 错误&#xff0c;尤其是在模板文件中使用不被支持或错误的模板标签时。最近&#xff0c;我们遇到的一个常见错误是&#xff1a; Invalid block tag on l…