vue3+TS或JS, 实现粒子特效 @tsparticles/vue3

在跟着B站视频BV11s4y1a71T学习时,使用到了粒子效果,但是以下这种情况只适用于项目是基于typescript的写法,否则无法实现

粒子效果

  • VUE3+TS+@tsparticles/vue3
    • 1、安装
    • 2、main.ts 引入
    • 3、App.vue
    • 4、效果
  • VUE3+JS+非最新版
    • 1、安装低版本的vue3-particles
    • 2、main.js 注册
    • 3、页面使用
    • 4、效果

VUE3+TS+@tsparticles/vue3

1、安装

pnpm i @tsparticles/vue3 @tsparticles/slim

2、main.ts 引入

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'import Particles from "@tsparticles/vue3";
import { loadSlim } from "@tsparticles/slim";const app = createApp(App)app.use(Particles as any, {init: async (engine: any) => {await loadSlim(engine);},
});app.mount('#app')

3、App.vue

<script setup lang="ts">
import HelloWorld from './components/HelloWorld.vue'
import {ref} from 'vue'
const particlesOptions = ref({background: {color: {value: "block",},},fullScreen: {enable: false,},opacity: {value: 1,random: true,},fpsLimit: 120,interactivity: {events: {onClick: {enable: true,mode: "push",},onHover: {enable: true,mode: "repulse",},},modes: {bubble: {distance: 400,duration: 2,opacity: 0.8,size: 40,},push: {quantity: 4,},repulse: {distance: 200,duration: 0.4,},},},particles: {color: {value: "random",animation: {enable: true,speed: 20,sync: true,},},links: {color: "random",distance: 150,enable: true,opacity: 0.5,width: 1,},move: {direction: "none",enable: true,outModes: "bounce",random: false,speed: 6,straight: false,},number: {density: {enable: true,},value: 80,},opacity: {value: 0.5,},shape: {type: "circle",},size: {value: { min: 1, max: 5 },},},detectRetina: true,
});
</script><template><vue-particles id="tsparticles" :options="particlesOptions" /><div><a href="https://vitejs.dev" target="_blank"><img src="/vite.svg" class="logo" alt="Vite logo" /></a><a href="https://vuejs.org/" target="_blank"><img src="./assets/vue.svg" class="logo vue" alt="Vue logo" /></a></div><HelloWorld msg="Vite + Vue" />
</template><style scoped>
#tsparticles{position: absolute; width: 100%; height: 100%;}
.logo {height: 6em;padding: 1.5em;will-change: filter;transition: filter 300ms;
}
.logo:hover {filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

4、效果

在这里插入图片描述

VUE3+JS+非最新版

当vue3项目没有配套使用TS的时候,上述粒子效果就无法实现。采用下面的方法。
参考文章《Vue3粒子库只有背景没有粒子效果》

1、安装低版本的vue3-particles

pnpm install vue3-particles@^1.43.1

2、main.js 注册

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
//引入element plus
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'import Particles from "vue3-particles";const app = createApp(App)app.use(store)
app.use(router)
app.use(ElementPlus)
app.use(Particles)app.mount('#app')

3、页面使用

<template><div>   <Particles id="tsparticles" :options="options" /></div>
</template><script>
export default { name:'' }
</script><script setup>//import {ref, reactive} from 'vue'
//  const handleLogin = ()=>{
//   localStorage.setItem('token','purpleberry')
//  }const handleLogin = () => {localStorage.setItem("token", "JJ")
};
//配置particles
const options = {background: {color: {value: '#0d47a1',},},fpsLimit: 120,interactivity: {events: {onClick: {enable: true,mode: 'push',},onHover: {enable: true,mode: 'repulse',},resize: true,},modes: {bubble: {distance: 400,duration: 2,opacity: 0.8,size: 40,},push: {quantity: 4,},repulse: {distance: 200,duration: 0.4,},},},particles: {color: {value: '#ffffff',},links: {color: '#ffffff',distance: 150,enable: true,opacity: 0.5,width: 1,},move: {direction: 'none',enable: true,outMode: 'bounce',random: false,speed: 6,straight: false,},number: {density: {enable: true,area: 800,},value: 80,},opacity: {value: 0.5,},shape: {type: 'circle',},size: {random: true,value: 5,},},detectRetina: true,
}</script><style scoped lang="scss"></style>

4、效果

在这里插入图片描述

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

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

相关文章

ACC-UNet: A Completely Convolutional UNet Model for the 2020s

文章目录 ACC-UNet: A Completely Convolutional UNet Model for the 2020s摘要方法实验结果 ACC-UNet: A Completely Convolutional UNet Model for the 2020s 摘要 这十年以来&#xff0c;计算机视觉领域引入了 Vision Transformer&#xff0c;标志着广泛的计算机视觉发生了…

同程旅行基于Proxy的Kafka最佳实践

公众号文章&#xff1a;同程旅行基于Proxy的Kafka最佳实践 Apache Kafka&#xff0c;作为当前企业级数据流处理的首选平台&#xff0c;由于其高吞吐量和可扩展性而深受欢迎。 然而&#xff0c;随着企业数据量的爆炸性增长和业务需求的多样化&#xff0c;Kafka 集群面临着各种挑…

模型 空船效应

1 空船效应的应用 1.1 空船效应帮助客户服务人员面对挑战性客户 赵敏是一家大型电信公司的客户服务经理。在一次服务中&#xff0c;一位客户因为网络连接问题而非常愤怒&#xff0c;他通过电话对赵敏大声抱怨&#xff0c;并要求立即解决问题。一般在这种情况下&#xff0c;客…

暗区突围哪里获得测试资格 暗区突围测试资格获取方法

在游戏业界的浩瀚星空中&#xff0c;《暗区突围》如同一颗璀璨新星&#xff0c;以其独树一帜的游戏模式和前所未有的沉浸式体验&#xff0c;迅速吸引了全球玩家的目光。它不仅仅是一款游戏&#xff0c;更像是一次对勇气、智慧与团队合作的深度探索。玩家在危机四伏的暗区中&…

IP地址127.0.0.1的误解:一次投标监管的技术失误

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

Apache SeaTunnel 4月回顾:明星贡献者与技术突破

各位热爱 SeaTunnel 的小伙伴们&#xff0c;SeaTunnel 社区 4 月份月报来啦&#xff01;这里将记录 SeaTunnel 社区每月的重要更新&#xff0c;欢迎关注&#xff01; 月度 Merge 之星 感谢以下小伙伴 4 月为 Apache SeaTunnel 做的精彩贡献&#xff08;排名不分先后&#xff…

ChatGPT 即将登陆 iPhone;斯坦福推出 AI 辅助全息成像技术丨 RTE 开发者日报 Vol.202

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

鸿蒙OpenHarmony:【关于deps、external_deps的使用】

关于deps、external_deps的使用 在添加一个模块的时候&#xff0c;需要在BUILD.gn中声明它的依赖&#xff0c;为了便于后续处理部件间依赖关系&#xff0c;我们将依赖分为两种——部件内依赖deps和部件间依赖external_deps。 依赖分类 开发前请熟悉鸿蒙开发指导文档&#xff…

ambari-server高可用配置方案

制品 https://kdocs.cn/l/cie4hSgvUunX 前置条件 环境需要支持VRRP协议 环境需要配置好yum源 变更影响面 变更不会影响其他组件 配置lb(需要客户侧配置并提供LB地址) 转发方式选择 主备 监听端口为8080、8440、8441 协议为tcp 后端监听选择kde-offline1为主 后端监听选择kde-…

YOLOv8预测流程-原理解析[目标检测理论篇]

接下来是我最想要分享的内容&#xff0c;梳理了YOLOv8预测的整个流程&#xff0c;以及训练的整个流程。 关于YOLOv8的主干网络在YOLOv8网络结构介绍-CSDN博客介绍了&#xff0c;为了更好地介绍本章内容&#xff0c;还是把YOLOv8网络结构图放在这里&#xff0c;方便查看。 1.前言…

DDM-MIMO-FMCW雷达MATLAB仿真

本文在前期TDM和BPM体制的基础上&#xff0c;仿真DDM体制下的调制解调和信号处理测距、测速、测角流程。 TDM和BPM相关可以看这两篇博文TDM(BPM)-MIMO-FMCW雷达仿真-CSDN博客&#xff0c;确定性最大似然&#xff08;DML&#xff09;估计测角-CSDN博客TDM(BPM)-MIMO-FMCW雷达仿真…

Numpy求最大、最小值、求累乘、累和

Numpy求最大、最小值 代码举例&#xff1a; ​ 输出结果为&#xff1a; ​ 在这个例子中&#xff0c;我们首先导入了NumPy库&#xff0c;然后创建了一个3x3的矩阵A。接着&#xff0c;我们使用np.max()函数来求矩阵A的最大值&#xff0c;并将结果存储在变量max_value中&#xff…