为了提高页面展示效果,登录界面内容比较单一的,粒子效果作为背景经常使用到,vue工程中利用vue-particles可以很简单的实现页面的粒子背景效果。
解决问题:
- 以背景方式显示
- 无法获取按钮焦点,触发不了点击事件
实现过程
安装vue-particles
npm install vue-particles --save-dev
全局配置vue-particles
在main.js里面:
import VueParticles from 'vue-particles' Vue.use(VueParticles)
使用 vue-particles
在vue文件template标签中:
<template > <div v-loading.fullscreen.lock="loading" class="login" element-loading-spinner="fa fa-spinner fa-pulse fa-3x fa-fw"> <vue-particles color="#409EFF" :particleOpacity="0.7" :particlesNumber="80" shapeType="circle" :particleSize="4" linesColor="#409EFF" :linesWidth="1" :lineLinked="true" :lineOpacity="0.4" :linesDistance="150" :moveSpeed="3" :hoverEffect="true" hoverMode="grab" :clickEffect="true" clickMode="push" > </vue-particles> <el-form :rules="rules" :model="loginFrom" class="logContainer" ref="loginFrom" @keydown.enter.native="loginSubmit"> <h2 class="logtitle"><i class="fa fa-drupal fa-2x" style="color: #505458" /> 人 事 管 理</h2> <el-form-item prop="username"> <el-input type="text" v-model="loginFrom.username" placeholder="请输入用户名" class="inputbg" auto-complete="off"> <i slot="prefix" class="el-icon-user"></i> </el-input> </el-form-item> <el-form-item prop="password"> <el-input type="password" v-model="loginFrom.password" placeholder="请输入密码" auto-complete="off"> <i slot="prefix" class="el-icon-lock"></i> </el-input> </el-form-item> <el-form-item prop="code"> <el-input v-model="loginFrom.code" auto-complete="off" placeholder="验证码" style="width: 63%" @keyup.enter.native="loginSubmit"> <i slot="prefix" class="el-icon-view"></i> </el-input> <div class="login-code"> <img :src="codeUrl" @click="getCode"> </div> </el-form-item> <el-checkbox v-model="loginFrom.rememberMe" style="margin:0 0 25px 0;"> 记住我 </el-checkbox> <el-button type="primary" style="width:100%; position: relative;" @click="loginSubmit">登录</el-button> </el-form> </div> </template>
vue-particles有一个id为默认为particles-js,可以根据这个id来设置样式。设置之后就可以显示了。
#particles-js{ width: 100%; height: calc(100% - 100px); position: absolute; }
我在做完这一步时,发现点击按钮触发不了。
后来做了如下修改;加个样式 position: relative;,将button的定位写出相对定位就OK啦,我也不知道啥原因,想着修改之前是好的, 可能 被position: absolute; 影响了,所以就一个个试 position的属性
<el-button type="primary" style="width:100%; position: relative;" @click="loginSubmit">登录</el-button>
附:具体参数说明
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"。
总结
以上所述是小编给大家介绍的vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应),希望对大家有所帮助!