最近在使用Vue+Element開發(fā)一個后臺管理系統(tǒng),想找一個好看點的素材當背景,突然找到particles.js
(傳送門:https://github.com/VincentGarreau/particles.js/),也就是傳說的粒子效果。于是想使用它當作登陸背景。
先上效果圖如下
效果圖
- 安裝particles.js
npm install --save particles.js
- 在main.js中引入
//main.js文件
import VueParticles from 'vue-particles'
Vue.use(VueParticles)
- 在需要的頁面中直接使用
<vue-particles
class="vue-particles"
color="#dedede"
:particleOpacity="0.7"
:particlesNumber="80"
shapeType="star"
:particleSize="4"
linesColor="#dedede"
:linesWidth="1"
:lineLinked="true"
:lineOpacity="0.4"
:linesDistance="150"
:moveSpeed="3"
:hoverEffect="true"
hoverMode="grab"
:clickEffect="true"
clickMode="push">
</vue-particles>
- 對應(yīng)的屬性含義
color: String類型。默認'#dedede'。粒子顏色。
particleOpacity: Number類型。默認0.7。粒子透明度。
particlesNumber: Number類型。默認80。粒子數(shù)量。
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"
- 半成品效果圖
半成品
如圖可以看得到粒子效果在上面,而登錄框則被擠到下面,因此需要通過css定位來調(diào)整位置,使其達到想要的效果。
/* css布局 */
.vue-particles{
position: absolute;
width: 100%;
height: 100%;
}
- 銷毀粒子效果
粒子效果在登陸后默認會繼續(xù)運行,會導(dǎo)致瀏覽器占用資源過高,查看其源碼后發(fā)現(xiàn)作者為其寫了一個銷毀粒子函數(shù),因此可以在登陸后經(jīng)行手動銷毀粒子效果,釋放資源。
beforeDestroy(){
if(pJSDom && pJSDom.length > 0){
pJSDom.forEach(pJSDomItem=>{
pJSDomItem.pJS.fn.vendors.destroypJS()
})
}
}
后記:粒子銷毀后如果用戶退出登陸返回到登陸頁面,粒子效果將不再渲染,這個問題目前還沒有解決,到時候要是解決了再來補充吧。