vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)


Posted in Javascript onFebruary 11, 2020

为了提高页面展示效果,登录界面内容比较单一的,粒子效果作为背景经常使用到,vue工程中利用vue-particles可以很简单的实现页面的粒子背景效果。

解决问题:

  • 以背景方式显示
  • 无法获取按钮焦点,触发不了点击事件

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实现粒子背景效果及遇到的坑(按钮没有点击响应),希望对大家有所帮助!

Javascript 相关文章推荐
JavaScript全局函数使用简单说明
Mar 11 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
Sep 10 Javascript
javascript里模拟sleep(两种实现方式)
Jan 25 Javascript
JS操作JSON要领详细总结
Aug 25 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
Nov 26 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
Apr 17 Javascript
JS实现保留n位小数的四舍五入问题示例
Aug 03 Javascript
JavaScript SHA1加密算法实现详细代码
Oct 06 Javascript
COM组件中调用JavaScript函数详解及实例
Feb 23 Javascript
JavaScript实现反转字符串的方法详解
Apr 27 Javascript
vue项目中axios请求网络接口封装的示例代码
Dec 18 Javascript
vue使用echarts图表自适应的几种解决方案
Dec 04 Vue.js
原生js拖拽实现图形伸缩效果
Feb 10 #Javascript
js实现单元格拖拽效果
Feb 10 #Javascript
详解Vue template 如何支持多个根结点
Feb 10 #Javascript
JavaScript canvas动画实现时钟效果
Feb 10 #Javascript
JavaScript canvas仿代码流瀑布
Feb 10 #Javascript
Vue数字输入框组件使用方法详解
Feb 10 #Javascript
JavaScript canvas实现跟随鼠标事件
Feb 10 #Javascript
You might like
ASP知识讲座四
2006/10/09 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
AngularJS递归指令实现Tree View效果示例
2016/11/07 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
Python性能优化的20条建议
2014/10/25 Python
python列表的常用操作方法小结
2016/05/21 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
Python验证码截取识别代码实例
2020/05/16 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
海外淘书首选:AbeBooks
2017/07/31 全球购物
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
J2EE相关知识面试题
2013/08/26 面试题
共产党员公开承诺书
2014/03/25 职场文书
敬老院活动总结
2014/04/28 职场文书
2014年食堂工作总结
2014/11/20 职场文书
《揠苗助长》教学反思
2016/02/20 职场文书