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 fullscreen全屏实现代码
Apr 09 Javascript
javascript中关于执行环境的杂谈
Aug 14 Javascript
js创建数据共享接口——简化框架之间相互传值
Oct 23 Javascript
防止jQuery ajax Load使用缓存的方法小结
Feb 22 Javascript
一个获取第n个元素节点的js函数
Sep 02 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
Oct 17 Javascript
详解React-Todos入门例子
Nov 08 Javascript
three.js实现围绕某物体旋转
Jan 25 Javascript
bootstrap PrintThis打印插件使用详解
Feb 20 Javascript
jQuery 添加元素和删除元素的方法
Jul 15 jQuery
DWR内存兼容及无法调用问题解决方案
Oct 16 Javascript
梳理一下vue中的生命周期
Dec 30 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
PHP 缓存实现代码及详细注释
2010/05/16 PHP
PHP 工厂模式使用方法
2010/05/18 PHP
php图片的裁剪与缩放生成符合需求的缩略图
2013/01/11 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
jQuery客户端分页实例代码
2013/11/18 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
jQuery中可见性过滤器简单用法示例
2018/03/31 jQuery
对vue中methods互相调用的方法详解
2018/08/30 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
pymongo实现多结果进行多列排序的方法
2015/05/16 Python
Python求解任意闭区间的所有素数
2018/06/10 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2015年元旦标语大全
2014/12/09 职场文书
先进基层党组织材料
2014/12/25 职场文书
复活读书笔记
2015/06/29 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
SQLServer之常用函数总结详解
2021/08/30 SQL Server