博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
particles.js在vue上的运用
阅读量:5011 次
发布时间:2019-06-12

本文共 2350 字,大约阅读时间需要 7 分钟。

转:

知乎的首页后面的粒子动效总觉得很炫酷,搜了一下,发现是用particles.js编写的。刚好目前的项目是利用vue框架的,两个凑在一起学了。

讲道理,这个用得好的话,页面是可以很酷的,譬如我现在写的项目

 
酷酷的登录页

嘻嘻~

安装particles.js


npm install --save particles.js

配置particles.js


  1. template
    这个就是动态粒子要展示的位置。
  1. script
    因为涉及到dom树,所以必须在挂载结束后初始化particles.js。第一个参数id就是你在template上取得id名,像我要写的话就是particles。第二个参数是你的data存放的路径,个人建议使用相对路径。
mounted(){    particlesJS.load('id','path to your particles.data');}
  1. style
#particles{      position: absolute;      width: 100%; height: 100%; background-color: #b61924; background-repeat: no-repeat; background-size: cover; background-position: 50% 50%; }

讲到这里会发现,还有一个最重要的点没讲出来,恩,就是particles.js 的引入。当你的使用范围比较小时,可以直接在当前vue文件的script中引入,即

//vue文件import particles from 'particles.js'

又或者你觉得这样不好管理,一定要放在main文件中也可以

//main文件import particles from 'particles.js' Vue.use(particles)
  1. particles.data
    这个data是用于控制粒子在页面中所呈现的状态,这个文件是自己新建的,建议放在静态资源文件夹里。通过修改里边的字段,来得到自己想要的效果。如修改particles.color.value 的值就是修改粒子的颜色;修改particle.shape就是修改粒子的外观。
{  "particles": {    "number": {      "value": 60,      "density": { "enable": true, "value_area": 800 } }, "color": { "value": "#ffffff" }, "shape": { "type": "circle", "stroke": { "width": 0, "color": "#000000" }, "polygon": { "nb_sides": 5 }, "image": { "src": "img/github.svg", "width": 100, "height": 100 } }, "opacity": { "value": 0.5, "random": false, "anim": { "enable": false, "speed": 1, "opacity_min": 0.1, "sync": false } }, "size": { "value": 3, "random": true, "anim": { "enable": false, "speed": 40, "size_min": 0.1, "sync": false } }, "line_linked": { "enable": true, "distance": 150, "color": "#ffffff", "opacity": 0.4, "width": 1 }, "move": { "enable": true, "speed": 4, "direction": "none", "random": false, "straight": false, "out_mode": "out", "bounce": false, "attract": { "enable": false, "rotateX": 100, "rotateY": 1200 } } }, "interactivity": { "detect_on": "Window", "events": { "onhover": { "enable": true, "mode": "grab" }, "onclick": { "enable": true, "mode": "push" }, "resize": true }, "modes": { "grab": { "distance": 140, "line_linked": { "opacity": 1 } }, "bubble": { "distance": 400, "size": 40, "duration": 2, "opacity": 8, "speed": 3 }, "repulse": { "distance": 200, "duration": 0.4 }, "push": { "particles_nb": 4 }, "remove": { "particles_nb": 2 } } }, "retina_detect": true }

最后呈现的效果如下

 
效果图

嘻嘻,记录完了,可以把test文件删了。

转载于:https://www.cnblogs.com/mmzuo-798/p/9908893.html

你可能感兴趣的文章
sql查询删除重复数据
查看>>
checkstyle配置文件说明
查看>>
cmake编译opencv时指定cuda版本
查看>>
固态硬盘装系统/双系统
查看>>
Static 与 new 的问题【待解决】
查看>>
xml
查看>>
在 mvc4 WebApi 中 json 的 跨域访问
查看>>
敏捷开发文章读后感
查看>>
xposed获取context 的方法
查看>>
html5 canvas 图像处理
查看>>
He who hesitates is Lost
查看>>
多少个1能被2009整除
查看>>
第一个Django页面(2)
查看>>
微信菜单创建
查看>>
js 实现论坛评论模块原理
查看>>
MyEclipse Workspace编码与网页/编辑器 中文乱码问题
查看>>
c++函数回顾
查看>>
【深度学习最优化方法】
查看>>
弹出框始终保持居中(包括有滚动条和窗体缩放时)
查看>>
C#访问数据库增删查改代码
查看>>