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 相关文章推荐
二级域名或跨域共享Cookies的实现方法
Aug 07 Javascript
HTML5附件拖拽上传drop &amp; google.gears实现代码
Apr 28 Javascript
jQuery的缓存机制浅析
Jun 07 Javascript
javascript简单写的判断电话号码实例
May 24 Javascript
浅谈Vuex的状态管理(全家桶)
Nov 04 Javascript
对vue中methods互相调用的方法详解
Aug 30 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
Sep 28 Javascript
jQuery实现合并表格单元格中相同行操作示例
Jan 28 jQuery
vue路由跳转传参数的方法
May 06 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
Sep 05 Javascript
axios实现文件上传并获取进度
Mar 25 Javascript
解决Vue router-link绑定事件不生效的问题
Jul 22 Javascript
原生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
一个ftp类(ini.php)
2006/10/09 PHP
php htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
js实现3D旋转效果
2020/08/18 Javascript
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python实现超简单端口转发的方法
2015/03/13 Python
python字典排序实例详解
2015/05/20 Python
浅谈Python peewee 使用经验
2017/10/20 Python
python实现图片转字符小工具
2019/04/30 Python
详解python中的线程与线程池
2019/05/10 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
html5使用canvas画三角形
2014/12/15 HTML / CSS
2014最新房贷收入证明范本
2014/09/12 职场文书
客户付款通知书
2015/04/23 职场文书
三方合作意向书范本
2015/05/09 职场文书
小学六年级毕业感言
2015/07/30 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
MySQL创建管理LIST分区
2022/04/13 MySQL