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 相关文章推荐
window.dialogArguments 使用说明
Apr 11 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
Nov 13 Javascript
js控制table合并具体实现
Feb 20 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
Aug 24 Javascript
javascript生成随机数方法汇总
Nov 12 Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 Javascript
修改js confirm alert 提示框文字的简单实例
Jun 10 Javascript
jQuery居中元素scrollleft计算方法示例
Jan 16 Javascript
把vue-router和express项目部署到服务器的方法
Feb 21 Javascript
js实现轮播图效果 z-index实现轮播图
Jan 17 Javascript
vue项目实现多语言切换的思路
Sep 17 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
Nov 05 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
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
JavaScript中两种链式调用实现代码
2011/01/12 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
JS使用parseInt解析数字实现求和的方法
2015/08/05 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
js拖拽功能实现代码解析
2016/11/28 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
Python中的zip函数使用示例
2015/01/29 Python
python通过yield实现数组全排列的方法
2015/03/18 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
Django组件cookie与session的具体使用
2019/06/05 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
python如何读取bin文件并下发串口
2019/07/05 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
公司门卫岗位职责
2014/03/15 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
mysql事务对效率的影响分析总结
2021/10/24 MySQL
victoriaMetrics库布隆过滤器初始化及使用详解
2022/04/05 Golang