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

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

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粒子动态背景内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

vue3中使用VueParticles实现粒子动态背景效果的更多相关文章

  1. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  2. vue自定义加载指令v-loading占位图指令v-showimg

    这篇文章主要为大家介绍了vue自定义加载指令和v-loading占位图指令v-showimg的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  3. vue使用动画实现滚动表格效果

    这篇文章主要为大家详细介绍了vue使用动画实现滚动表格效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  4. 关于Vue 监控数组的问题

    这篇文章主要介绍了Vue 监控数组的示例,主要包括Vue 是如何追踪数据发生变化,Vue 如何更新数组以及为什么有些数组的数据变更不能被 Vue 监测到,对vue监控数组知识是面试比较常见的问题,感兴趣的朋友一起看看吧

  5. Vue子组件props从父组件接收数据并存入data

    这篇文章主要介绍了Vue子组件props从父组件接收数据并存入data的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  6. Vue h函数的使用详解

    本文主要介绍了Vue h函数的使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  7. VUE响应式原理的实现详解

    这篇文章主要为大家详细介绍了VUE响应式原理的实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

  8. vue+Element ui实现照片墙效果

    这篇文章主要为大家详细介绍了vue+Element ui实现照片墙效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. vue+elemet实现表格手动合并行列

    这篇文章主要为大家详细介绍了vue+elemet实现表格手动合并行列,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. iview+vue实现导入EXCEL预览功能

    这篇文章主要为大家详细介绍了iview+vue实现导入EXCEL预览功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部