vue-particles做背景,鼠标动画粒子连线填坑(按钮没有点击响应)
为了提高页面展示效果,登录界面内容比较单一的,粒子效果作为背景经常使用到,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>
坑二,网上好多是直接在APP组件里,我试了之后,鼠标无法触发粒子,感觉下面的写法不对,或者我那里其他的问题。
<template>
<div id="app" style="overflow-x: hidden">
<vue-particles color="#409EFF"
:particleOpacity="0.9"
:particlesNumber="1"
shapeType="circle"
:particleSize="4"
linesColor="#409EFF"
:linesWidth="1"
:lineLinked="true"
:lineOpacity="0.7"
:linesDistance="150"
:moveSpeed="4"
:hoverEffect="true"
hoverMode="grab"
:clickEffect="true"
clickMode="push"></vue-particles>
<router-view></router-view>
</div> </template> <script>
export default {
name: 'app',
data () {
return { }
},
mounted:function() {
this.$store.dispatch('initData');
this.$store.dispatch('initData');
}, }
</script> <style lang="scss" scoped>
#particles-js {
width: 100%;
height: calc(100% - 100px);
position: absolute;
overflow: hidden;
}
</style>
附:具体参数说明
- 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做背景,鼠标动画粒子连线填坑(按钮没有点击响应)的更多相关文章
- Android特效专辑(五)——自定义圆形头像和仿MIUI卸载动画—粒子爆炸
Android特效专辑(五)--自定义圆形头像和仿MIUI卸载动画-粒子爆炸 好的,各位亲爱的朋友,今天讲的特效还是比较炫的,首先,我们会讲一个自定义圆形的imageView,接着,我们会来实现粒子爆 ...
- Silverlight动画显示Line线
目的:在silverlight中显示两点之间的连线,要求动画显示连线效果. 如果需实现动画效果不得不了解,Storyborad对象: Storyboard Silverlight 通过时间线控制动 ...
- vue中使用js动画与velocity.js
一:vue中使用js动画 根据上一篇安装animate.css之后 vue中有动画的钩子函数,@before-enter是内容由无到有的时候自动监听触发的函数,函数会接收到参数el,这样可以动态设置样 ...
- 使用vue模拟购物车小球动画
使用vue模拟购物车小球动画 1.效果演示 2.相关代码 <!DOCTYPE html> <html lang="en"> <head> < ...
- WPF 跟随鼠标动画 by wgscd
WPF 跟随鼠标动画 by wgscd <UserControl x:Class="WpfApplication1.Spark" xmlns="http://sch ...
- Vue 监听鼠标左键 鼠标右键以及鼠标中键修饰符click.left&contextmenu&click.middle
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue中可以自定义动画的前缀
vue中可以自定义动画的前缀1.只需在中加入name属性即可 <transition name="my"> <h6 v-if="flag2"& ...
- Vue页面跳转动画效果实现
Vue页面跳转动画效果实现:https://juejin.im/post/5ba358a56fb9a05d2068401d
- echarts+百度地图+vue 填坑记(一)(百度地图、鼠标移入移出标注,信息框会产生闪烁)
大概七月底开始实习,到现在经历了两个完整的项目(c2b). 因为开发时间紧,任务重,所以在开发过程踩到的坑都没时间去记录. 现在在开发一个某链运输监控系统,到了收尾阶段,有时间写博客了!开心! 一.鼠 ...
随机推荐
- Serverless 实战 —— Funcraft + OSS + ROS 进行 CI/CD
前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准 ...
- .NET 半天搭建Jenkins持续集成与自动化部署系统
前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...
- 洛谷$P4126\ [AHOI2009]$最小割 图论
正解:网络流+$tarjan$ 解题报告: 传送门$QwQ$ $umm$最小割的判定问题$QwQ$,因为并不会做是看的题解才会的,所以也没什么推导过程直接放结论趴$QwQ$ 首先跑个最大流,然后有. ...
- java做插入时ID为自增获取到ID
<selectKey keyProperty="id" resultType="int" order="AFTER"> sele ...
- 「洛谷P2906」[USACO08OPEN]牛的街区Cow Neighborhoods 解题报告
P2906 [USACO08OPEN]牛的街区Cow Neighborhoods 题目描述 Those Who Know About Cows are aware of the way cows gr ...
- 从零开始Go语言-GoLand(编译器)-Windows(平台)
本文章适合那些想入门Go语言,却又不知道如何搭建自己的第一个HelloWorld的同学. 推荐几个Go语言相关学习网站: C语言中文网: http://c.biancheng.net/golang/ ...
- Swift之代码混淆的调研实施小记
背景: 最近做APP备案,需要对项目做一系列对优化改进,其中就包括了代码混淆,顾名思义,混淆是为了代码安全,是为了增加逆向破解的难度与复杂度. 目前市面上,免费和付费都有,一些公司对APP加固已经做成 ...
- java中高级并发SPI机制
Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制. 适用于:调用者根据实际使用需要,启用.扩展.或者替换框架的实现策略. 要使用Java SPI,需要遵循如下约定 ...
- Spring是什么,Spring容器提供了那些功能,Spring的工作机制
spring是什么 spring 是一个轻型的容器,是J2EE规范的轻量级实现,可以一站式开发,其中提供了,bean工厂,用以构造我们需要的Model ,spring 是非侵入式的,spring应用中 ...
- Ubuntu生成应用图标
1.DeskTop Entry介绍 现代 Linux 桌面系统也提供了此项功能.目前,Linux KDE 和 Linux GNOME 桌面系统都使用 Desktop Entry 文件标准来描述程序启动 ...