vue3中使用VueParticles实现粒子动态背景效果

目录
  • particles.vue3官网
  • 可以仔细看下这里 有案例跟文档
  • 官网 Demo
  • 好了直接进入主题 安装使用
  • Vue3 语法糖中使用
  • 配置单独写到文件particles.js,代码看起来简洁些

- 在某项目见到粒子动画背景,也想将这个动画效果用在自己的项目上。

先看效果 实际是动图的. 还不太会搞动图 凑合看下

particles.vue3官网

particles.js.org/

可以仔细看下这里 有案例跟文档

官网 Demo

好了直接进入主题 安装使用

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

Vue3 语法糖中使用

<template>
	<Particles id="tsparticles" class="login__particles" :options="particles" />
</template>
<script setup>
	//背景动画
	import { particles } from '../components/particles/particles.js'
</script>

配置单独写到文件particles.js,代码看起来简洁些

// 背景动画设置
// color: String类型。默认'#dedede'。粒子颜色。
// particleOpacity: Number类型。默认0.7。粒子透明度。
// particlesNumber: Number类型。默认80。粒子数量。
// shapeType: String类型。默认'circle'。可用的粒子外观类型有:"circle","edge","triangle", "polygon","star"。
// particleSize: Number类型。默认80。单个粒子大小。
// linesColor: String类型。默认'#dedede'。线条颜色。
// linesWidth: Number类型。默认1。线条宽度。
// lineLinked: 布尔类型。默认true。连接线是否可用。
// lineOpacity: Number类型。默认0.4。线条透明度。
// linesDistance: Number类型。默认150。线条距离。
// moveSpeed: Number类型。默认3。粒子运动速度。
// hoverEffect: 布尔类型。默认true。是否有hover特效。
// hoverMode: String类型。默认true。可用的hover模式有: "grab", "repulse", "bubble"。
// clickEffect: 布尔类型。默认true。是否有click特效。
// clickMode: String类型。默认true。可用的click模式有: "push", "remove", "repulse", "bubble"。
export const particles =
{
	"autoPlay": true,
	"background": {
	  "color": {
		"value": "#000000"
	  },
	  "image": "",
	  "position": "50% 50%",
	  "repeat": "no-repeat",
	  "size": "cover",
	  "opacity": 1
	},
	"backgroundMask": {
	  "composite": "destination-out",
	  "cover": {
		"color": {
		  "value": "#fff"
		},
		"opacity": 1
	  },
	  "enable": false
	},
	"fullScreen": {
	  "enable": true,
	  "zIndex": 0
	},
	"detectRetina": true,
	"duration": 0,
	"fpsLimit": 120,
	"interactivity": {
	  "detectsOn": "window",
	  "events": {
		"onClick": {
		  "enable": true,
		  "mode": "push"
		},
		"onDiv": {
		  "selectors": [],
		  "enable": false,
		  "mode": [],
		  "type": "circle"
		},
		"onHover": {
		  "enable": false,
		  "mode": "repulse",
		  "parallax": {
			"enable": false,
			"force": 2,
			"smooth": 10
		  }
		},
		"resize": true
	  },
	  "modes": {
		"attract": {
		  "distance": 200,
		  "duration": 0.4,
		  "easing": "ease-out-quad",
		  "factor": 1,
		  "maxSpeed": 50,
		  "speed": 1
		},
		"bounce": {
		  "distance": 200
		},
		"bubble": {
		  "distance": 400,
		  "duration": 2,
		  "mix": false,
		  "opacity": 0.8,
		  "size": 40
		},
		"connect": {
		  "distance": 80,
		  "links": {
			"opacity": 0.5
		  },
		  "radius": 60
		},
		"grab": {
		  "distance": 400,
		  "links": {
			"blink": false,
			"consent": false,
			"opacity": 1
		  }
		},
		"light": {
		  "area": {
			"gradient": {
			  "start": {
				"value": "#ffffff"
			  },
			  "stop": {
				"value": "#000000"
			  }
			},
			"radius": 1000
		  },
		  "shadow": {
			"color": {
			  "value": "#000000"
			},
			"length": 2000
		  }
		},
		"push": {
		  "default": true,
		  "groups": [
			"z5000",
			"z7500",
			"z2500",
			"z1000"
		  ],
		  "quantity": 4
		},
		"remove": {
		  "quantity": 2
		},
		"repulse": {
		  "distance": 200,
		  "duration": 0.4,
		  "factor": 100,
		  "speed": 1,
		  "maxSpeed": 50,
		  "easing": "ease-out-quad"
		},
		"slow": {
		  "factor": 3,
		  "radius": 200
		},
		"trail": {
		  "delay": 1,
		  "pauseOnStop": false,
		  "quantity": 1
		}
	  }
	},
	"manualParticles": [],
	"motion": {
	  "disable": false,
	  "reduce": {
		"factor": 4,
		"value": true
	  }
	},
	"particles": {
	  "bounce": {
		"horizontal": {
		  "random": {
			"enable": false,
			"minimumValue": 0.1
		  },
		  "value": 1
		},
		"vertical": {
		  "random": {
			"enable": false,
			"minimumValue": 0.1
		  },
		  "value": 1
		}
	  },
	  "collisions": {
		"bounce": {
		  "horizontal": {
			"random": {
			  "enable": false,
			  "minimumValue": 0.1
			},
			"value": 1
		  },
		  "vertical": {
			"random": {
			  "enable": false,
			  "minimumValue": 0.1
			},
			"value": 1
		  }
		},
		"enable": false,
		"mode": "bounce",
		"overlap": {
		  "enable": true,
		  "retries": 0
		}
	  },
	  "color": {
		"value": "#fff",
		"animation": {
		  "h": {
			"count": 0,
			"enable": false,
			"offset": 0,
			"speed": 20,
			"sync": true
		  },
		  "s": {
			"count": 0,
			"enable": false,
			"offset": 0,
			"speed": 1,
			"sync": true
		  },
		  "l": {
			"count": 0,
			"enable": false,
			"offset": 0,
			"speed": 1,
			"sync": true
		  }
		}
	  },
	  "destroy": {
		"mode": "none",
		"split": {
		  "count": 1,
		  "factor": {
			"random": {
			  "enable": false,
			  "minimumValue": 0
			},
			"value": 3
		  },
		  "rate": {
			"random": {
			  "enable": false,
			  "minimumValue": 0
			},
			"value": {
			  "min": 4,
			  "max": 9
			}
		  },
		  "sizeOffset": true
		}
	  },
	  "gradient": [],
	  "groups": {
		"z5000": {
		  "number": {
			"value": 70
		  },
		  "zIndex": {
			"value": 50
		  }
		},
		"z7500": {
		  "number": {
			"value": 30
		  },
		  "zIndex": {
			"value": 75
		  }
		},
		"z2500": {
		  "number": {
			"value": 50
		  },
		  "zIndex": {
			"value": 25
		  }
		},
		"z1000": {
		  "number": {
			"value": 40
		  },
		  "zIndex": {
			"value": 10
		  }
		}
	  },
	  "life": {
		"count": 0,
		"delay": {
		  "random": {
			"enable": false,
			"minimumValue": 0
		  },
		  "value": 0,
		  "sync": false
		},
		"duration": {
		  "random": {
			"enable": false,
			"minimumValue": 0.0001
		  },
		  "value": 0,
		  "sync": false
		}
	  },
	  "links": {
		"blink": false,
		"color": {
		  "value": "#ffffff"
		},
		"consent": false,
		"distance": 100,
		"enable": false,
		"frequency": 1,
		"opacity": 0.4,
		"shadow": {
		  "blur": 5,
		  "color": {
			"value": "#00ff00"
		  },
		  "enable": false
		},
		"triangles": {
		  "enable": false,
		  "frequency": 1
		},
		"width": 1,
		"warp": false
	  },
	  "move": {
		"angle": {
		  "offset": 0,
		  "value": 10
		},
		"attract": {
		  "distance": 200,
		  "enable": false,
		  "rotate": {
			"x": 600,
			"y": 1200
		  }
		},
		"decay": 0,
		"distance": {},
		"direction": "right",
		"drift": 0,
		"enable": true,
		"gravity": {
		  "acceleration": 9.81,
		  "enable": false,
		  "inverse": false,
		  "maxSpeed": 50
		},
		"path": {
		  "clamp": true,
		  "delay": {
			"random": {
			  "enable": false,
			  "minimumValue": 0
			},
			"value": 0
		  },
		  "enable": false,
		  "options": {}
		},
		"outModes": {
		  "default": "out",
		  "bottom": "out",
		  "left": "out",
		  "right": "out",
		  "top": "out"
		},
		"random": false,
		"size": false,
		"speed": 5,
		"spin": {
		  "acceleration": 0,
		  "enable": false
		},
		"straight": false,
		"trail": {
		  "enable": false,
		  "length": 10,
		  "fillColor": {
			"value": "#000000"
		  }
		},
		"vibrate": false,
		"warp": false
	  },
	  "number": {
		"density": {
		  "enable": false,
		  "area": 800,
		  "factor": 1000
		},
		"limit": 0,
		"value": 200
	  },
	  "opacity": {
		"random": {
		  "enable": false,
		  "minimumValue": 0.1
		},
		"value": 1,
		"animation": {
		  "count": 0,
		  "enable": false,
		  "speed": 3,
		  "sync": false,
		  "destroy": "none",
		  "startValue": "random",
		  "minimumValue": 0.1
		}
	  },
	  "orbit": {
		"animation": {
		  "count": 0,
		  "enable": false,
		  "speed": 1,
		  "sync": false
		},
		"enable": false,
		"opacity": 1,
		"rotation": {
		  "random": {
			"enable": false,
			"minimumValue": 0
		  },
		  "value": 45
		},
		"width": 1
	  },
	  "reduceDuplicates": false,
	  "repulse": {
		"random": {
		  "enable": false,
		  "minimumValue": 0
		},
		"value": 0,
		"enabled": false,
		"distance": 1,
		"duration": 1,
		"factor": 1,
		"speed": 1
	  },
	  "roll": {
		"darken": {
		  "enable": false,
		  "value": 0
		},
		"enable": false,
		"enlighten": {
		  "enable": false,
		  "value": 0
		},
		"mode": "vertical",
		"speed": 25
	  },
	  "rotate": {
		"random": {
		  "enable": false,
		  "minimumValue": 0
		},
		"value": 0,
		"animation": {
		  "enable": false,
		  "speed": 0,
		  "sync": false
		},
		"direction": "clockwise",
		"path": false
	  },
	  "shadow": {
		"blur": 0,
		"color": {
		  "value": "#000000"
		},
		"enable": false,
		"offset": {
		  "x": 0,
		  "y": 0
		}
	  },
	  "shape": {
		"options": {},
		"type": "circle"
	  },
	  "size": {
		"random": {
		  "enable": false,
		  "minimumValue": 1
		},
		"value": 3,
		"animation": {
		  "count": 0,
		  "enable": false,
		  "speed": 5,
		  "sync": false,
		  "destroy": "none",
		  "startValue": "random"
		}
	  },
	  "stroke": {
		"width": 0
	  },
	  "tilt": {
		"random": {
		  "enable": false,
		  "minimumValue": 0
		},
		"value": 0,
		"animation": {
		  "enable": false,
		  "speed": 0,
		  "sync": false
		},
		"direction": "clockwise",
		"enable": false
	  },
	  "twinkle": {
		"lines": {
		  "enable": false,
		  "frequency": 0.05,
		  "opacity": 1
		},
		"particles": {
		  "enable": false,
		  "frequency": 0.05,
		  "opacity": 1
		}
	  },
	  "wobble": {
		"distance": 5,
		"enable": false,
		"speed": 50
	  },
	  "zIndex": {
		"random": {
		  "enable": false,
		  "minimumValue": 0
		},
		"value": 5,
		"opacityRate": 0.5,
		"sizeRate": 1,
		"velocityRate": 1
	  }
	},
	"pauseOnBlur": true,
	"pauseOnOutsideViewport": true,
	"responsive": [],
	"style": {},
	"themes": [],
	"zLayers": 100,
	"emitters": {
	  "autoPlay": true,
	  "fill": true,
	  "life": {
		"wait": false
	  },
	  "rate": {
		"quantity": 1,
		"delay": 7
	  },
	  "shape": "square",
	  "startCount": 0,
	  "size": {
		"mode": "percent",
		"height": 0,
		"width": 0
	  },
	  "particles": {
		"shape": {
		  "type": "images",
		  "options": {
			"images": {
			  "src": "https://particles.js.org/images/cyan_amongus.png",
			  "width": 500,
			  "height": 634
			}
		  }
		},
		"size": {
		  "value": 40
		},
		"move": {
		  "speed": 10,
		  "outModes": {
			"default": "none",
			"right": "destroy"
		  },
		  "straight": true
		},
		"zIndex": {
		  "value": 0
		},
		"rotate": {
		  "value": {
			"min": 0,
			"max": 360
		  },
		  "animation": {
			"enable": true,
			"speed": 10,
			"sync": true
		  }
		}
	  },
	  "position": {
		"x": -5,
		"y": 55
	  }
	}
  }

到此这篇关于vue3中使用 VueParticles实现粒子动态背景的文章就介绍到这了,更多相关vue粒子动态背景内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Vue登录主页动态背景短视频制作

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 一.HTML代码 <source src="../assets/video/G1s.mp4" type="video/mp4"/> 注:src的路径根据自己的需要改变: video标签无法自动播放 刷新后无法自动播放: 解决方法:给video标签添加muted属性,可写为muted或完整写法:muted="muted" <template>

  • vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)

    为了提高页面展示效果,登录界面内容比较单一的,粒子效果作为背景经常使用到,vue工程中利用vue-particles可以很简单的实现页面的粒子背景效果. 解决问题: 以背景方式显示 无法获取按钮焦点,触发不了点击事件 实现过程 安装vue-particles npm install vue-particles --save-dev 全局配置vue-particles 在main.js里面: import VueParticles from 'vue-particles' Vue.use(VueP

  • vue3使用particles插件实现粒子背景的方法详解

    目录 总结 效果(可以修改多种不同的样式效果) 1.安装 npm install particles.vue3 2.main.js import { createApp } from 'vue' import App from './App.vue' import router from "./router"; import Particles from "particles.vue3"; // 引入 const app = createApp(App); app.

  • vue3中使用VueParticles实现粒子动态背景效果

    目录 particles.vue3官网 可以仔细看下这里 有案例跟文档 官网 Demo 好了直接进入主题 安装使用 Vue3 语法糖中使用 配置单独写到文件particles.js,代码看起来简洁些 - 在某项目见到粒子动画背景,也想将这个动画效果用在自己的项目上. 先看效果 实际是动图的. 还不太会搞动图 凑合看下 particles.vue3官网 particles.js.org/ 可以仔细看下这里 有案例跟文档 官网 Demo 好了直接进入主题 安装使用 npm install parti

  • 基于Particles.js制作超炫粒子动态背景效果(仿知乎)

    好久没登录知乎,发现他们的登录页面粒子动态效果蛮炫的,查一下代码用了Particles.js基于Canvas画布创建粒子颗粒效果. 上图 上图: 感觉有比格,就照着弄了一个,玩玩. github: https://github.com/VincentGarreau/particles.js/ 操作过程: 网上有基本流程,可以参考一下,不过直接用在登录页面 会有小bug,需要调整下. 1.首先在页面中引入particles.js文件. <script src="js/particles.js

  • vue3中使用ant-design-vue的layout组件实现动态导航栏和面包屑功能

    目录 0 前言 1 准备工作 1.1 安装ant-design-vue 1.2 安装图标组件包 2 选择组件 3 路由文件 4 Vue导航页面 5 最终效果 0 前言 最近在自己搞一个前后端小项目,前端想使用ant-design-vue的layout组件实现动态导航栏和面包屑,但是网上的资料较少,所以我就自己整合实现了一下,在此记录分享. 1 准备工作 基于一个新建的Vue3项目上实现. 1.1 安装ant-design-vue 官方文档:Components Overview - Ant De

  • 详解Vue3中对VDOM的改进

    前言 vue-next 对virtual dom的patch更新做了一系列的优化,从编译时加入了 block 以减少 vdom 之间的对比次数,另外还有 hoisted 的操作减少了内存的开销.本文写给自己看,做个知识点记录,如有错误,还请不吝赐教. VDOM VDOM的概念简单来说就是用js对象来模拟真实DOM树.由于MV**的架构,真实DOM树应该随着数据(Vue2.x中的data)的改变而发生改变,这些改变可能是以下几个方面: v-if v-for 动态的props(如:class,@cl

  • 浅谈Vue3中key的作用和工作原理

    这个key属性有什么作用呢?我们先来看一下官方的解释: kekey属性主要用在Vue的虚拟DOM diff算法中,在新旧nodes对比时辨识Vnodes: 如果不使用key,Vue会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法 而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除/销毁 key 不存在的元素. 先简单提一下我对VNode的理解: VNode的全称是Virtual Node,也就是虚拟节点: Vnode的本质是一个JavaScri

  • Vue3中element-plus全局使用Icon图标的过程详解

    目录 1.安装图标库 2.注册 3.在组件中直接使用 4.在el-menu组件中动态使用 总结 Vue项目中使用Element-plus的Icon图标,包括按钮和动态菜单 1.安装图标库 npm install @element-plus/icons 2.注册 main.ts文件中引入并注册 import { createApp } from 'vue' import App from './App.vue' import ElementPlus from 'element-plus' impo

  • vue3中router路由以及vuex的store使用解析

    目录 vue3 router路由及vuex store使用 1.路由 2.vuex vue3中router路由和vuex的store使用,获取对象基本使用 vue3中router和store使用方法 1.企业开发Router全局配置 2.企业开发Store全局配置 功能快捷键 vue3 router路由及vuex store使用 1.路由 <script> import { useRouter, useRoute } from 'vue-router' export default {   s

  • vue3中如何用threejs画一些简单的几何体

    目录 前言 threejs简述 依赖包版本 vue3操作DOM 创建场景,相机,渲染器本节及后续都在initThree方法中写 立方体 球体 圆柱体 坐标系 点光源 鼠标操作旋转,缩放 球体,立方体自动旋转 initThree完整代码 总结 前言 在vue3中使用threejs画了几个最简单的几何体,自动旋转的立方体,圆柱体,球体,并且加入了光照,几何体影阴部分即光没照到的地方,成果如下,感兴趣的可以看看具体实现过程~ threejs简述 Three.js是基于原生WebGL封装运行的三维引擎

  • Vue3 中 watch 与 watchEffect 区别及用法小结

    目录 响应式依赖收集 Watch WatchEffect 什么时候用什么? 大部分时候用 watch 显式的指定依赖以避免不必要的重复触发,也避免在后续代码修改或重构时不小心引入新的依赖.watchEffect 适用于一些逻辑相对简单,依赖源和逻辑强相关的场景. 你可以认为他们是同一个功能的两种不同形态,底层的实现是一样的. watch- 显式指定依赖源,依赖源更新时执行回调函数 watchEffect - 自动收集依赖源,依赖源更新时重新执行自身 响应式依赖收集 首先先需要了解一下 vue 3

随机推荐