1. particles.js 是什么?
--- 轻量级JavaScript粒子库 ,
gitHub 地址可以下载示例代码,示例代码为DOM开发形式: https://github.com/VincentGarreau/particles.js
2. 效果就不给看了,公司的内部网站。直接上代码
//(1) 下载particles.js npm install particles.js --save //(2) 在template里面写一个div作为粒子库的容器 ,就像canvas那样 <div id="particlesId"></div>
//(3) 创建粒子库的配置文件,particles.json , 建议放在public静态资源文件夹
https://www.jb51.net/article/123527.htm 这个配置地址里有两个,我认为不好看 http://www.jq22.com/jquery-info20054 这个里面很漂亮,配置参数注释详细
为了方便,我直接将我认为漂亮的配置particles.json粘贴过来
{ "particles": { "number": { "value": 160,//数量 "density": { "enable": true, //启用粒子的稀密程度 "value_area": 800 //区域散布密度大小 } }, "color": { "value": "#ffffff" //原子的颜色 }, "shape": { "type": "circle", //原子的形状 "circle" ,"edge" ,"triangle" ,"polygon" ,"star" ,"image" ,["circle", "triangle", "image"] "stroke": { "width": 0, //原子的宽度 "color": "#000000" //原子颜色 }, "polygon": { "nb_sides": 5 // 原子的多边形边数 }, "image": { "src": "img/github.svg", // 原子的图片可以使用自定义图片 "assets/img/yop.svg" , "http://mywebsite.com/assets/img/yop.png" "width": 100, //图片宽度 "height": 100 //图片高度 } }, "opacity": { "value": 1, //不透明度 "random": true, //随机不透明度 "anim": { "enable": true, //渐变动画 "speed": 1, // 渐变动画速度 "opacity_min": 0, //渐变动画不透明度 "sync": true } }, "size": { "value": 3, //原子大小 "random": true, // 原子大小随机 "anim": { "enable": false, // 原子渐变 "speed": 4, //原子渐变速度 "size_min": 0.3, "sync": false } }, "line_linked": { "enable": false, //连接线 "distance": 150, //连接线距离 "color": "#ffffff", //连接线颜色 "opacity": 0.4, //连接线不透明度 "width": 1 //连接线的宽度 }, "move": { "enable": true, //原子移动 "speed": 1, //原子移动速度 "direction": "none", //原子移动方向 "none" ,"top" ,"top-right" ,"right" ,"bottom-right" ,"bottom" ,"bottom-left" ,"left" ,"top-left" "random": true, //移动随机方向 "straight": false, //直接移动 "out_mode": "out", //是否移动出画布 "bounce": false, //是否跳动移动 "attract": { "enable": false, // 原子之间吸引 "rotateX": 600, //原子之间吸引X水平距离 "rotateY": 600 //原子之间吸引Y水平距离 } } }, "interactivity": { "detect_on": "canvas", //原子之间互动检测 "canvas", "window" "events": { "onhover": { "enable": true, //悬停 "mode": "bubble" //悬停模式 "grab"抓取临近的,"bubble"泡沫球效果,"repulse"击退效果,["grab", "bubble"] }, "onclick": { "enable": false, //点击效果 "mode": "repulse" //点击效果模式 "push" ,"remove" ,"bubble" ,"repulse" ,["push", "repulse"] }, "resize": true // 互动事件调整 }, "modes": { "grab": { "distance": 100, //原子互动抓取距离 "line_linked": { "opacity": 0.8 //原子互动抓取距离连线不透明度 } }, "bubble": { "distance": 250, //原子抓取泡沫效果之间的距离 "size": 4, // 原子抓取泡沫效果之间的大小 "duration": 2, //原子抓取泡沫效果之间的持续事件 "opacity": 1, //原子抓取泡沫效果透明度 "speed": 3 }, "repulse": { "distance": 400, //击退效果距离 "duration": 0.4 //击退效果持续事件 }, "push": { "particles_nb": 4 //粒子推出的数量 }, "remove": { "particles_nb": 2 } } }, "retina_detect": true }
(4)在script标签里面,导入 “particles.js 和 particles.json” ,
import particles from 'particles.js' // 这是导入,第一步,npm安装的particles.js 文件
import particlesConfig from '../../public/particles.json' // 这是我自己的文件路径哈
因为在mounted阶段,组件才挂载在页面上,这是最早操作DOM的生命周期函数 。
现在 ,将数据放进指定id=particlesId 的div中
mounted () {
// 参数1 ,为div节点的id , 参数2,为particles.json配置文件
particlesJS("particlesId",particlesConfig);
}
(5)你可以设置一下 , id="particlesId"的div的位置和样式
#particlesId{ position: absolute; width: 100%; height: 100%; background-color: #b61924; background-repeat: no-repeat; background-size: cover; background-position: 50% 50%; }
以上,就能看到效果了。
虽然还有一些疑问,先做出效果,以后有机会再来修改,该篇博文
particlesJs("参数1","参数2") , particlesJs从哪来的 ,为什么就好使了呢???