vue-router之实现导航切换过渡动画效果


Posted in Javascript onOctober 31, 2019

过渡动效

提供了transition的封装组件,添加过渡动画,通过添加或删除css类名来实现。

过渡的css类名:

v-enter

进入过渡的开始状态

v-enter-active

进入活动状态

v-enter-to

进入的结束状态

v-leave

离开过渡的开始状态

v-leave-active

离开活动状态

v-leave-to

离开结束状态

过渡模式:

in-out

先进后出

out-in

先出后进

用法:

做一个淡隐淡出效果

把想要运动的元素放到<transition></transition>里面,设置模式。

<transition mode="out-in">
 <router-view class="center"></router-view>
</transition>

在style里写动效:

.v-enter{
 opacity: 0;
}
.v-enter-active{
 transition: 0.5s;
}
.v-enter-to{
 opacity: 1;
}
.v-leave{
 opacity: 1;
}
.v-leave-to{
 opacity:0;
}
.v-leave-active{
 transition: 0.5s;
}

就ok啦!

动态设置name

再做一个x轴向左和向右滑动进入消失效果。

.left-enter{
 transform:translateX(100%);
}
.left-enter-to{
 transform:translateX(0);
}
 
.left-enter-active{
 transition: 1s;
}
.left-leave{
 transform:translateX(0);
}
.left-leave-to{
 transform:translateX(-100%);
}
.left-leave-active{
 transition: 1s;
}

在transition标签中用name动态设置效果。此时要删掉mode="out-in"能自然衔接。

<transition name="left">
  <!--<router-view name="slider"></router-view>-->
  <router-view class="center"></router-view>
 </transition>

向右切换:

.right-enter{
 transform:translateX(-100%);
 }
 .right-enter-active{
 transition: 1s;
 }
 .right-leave-to{
 transform:translateX(100%);
 }
 .right-leave-active{
 transition: 1s;
 }

要想实现左边的向左,右边的向右切换呢

路由元信息

在路由配置中meta可以配置一些数据,用在路由对象中。

访问meta中的数据:$route.meta

也就是说,除了提供的路由配置信息,我们还可以通过meta来自定义想要的数据。

实现左边的向左,右边的向右切换:

step1:给每个组件分别加上index,如果目标路由的index大就向右滑动,否则向左。

meta:{
  index:0
  }

0,1,2,3这样。

step2:监控路由信息对象(上一篇文章中讲过原因),可以拿到离开的和目标的index

watch:{
 $route(to,from){
 console.log(to.meta.index);//目标导航下标
 console.log(from.meta.index);//离开导航下标
 }
}

step3:拿下标,比较设置class名称

watch:{
 $route(to,from){
  if(to.meta.index<from.meta.index){
  this.names="right"
  }else{
  this.names="left"
  }
 }
 },
 data(){
 return{
  index:'/home',
  names:'left'
 }
 }

以上这篇vue-router之实现导航切换过渡动画效果就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 避免闭包引发的问题
Mar 17 Javascript
jQuery 插件 将this下的div轮番显示
Apr 09 Javascript
jquery text,radio,checkbox,select操作实现代码
Jul 09 Javascript
用javascript关闭本窗口技巧小结
Sep 05 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
Dec 03 Javascript
bootstrap table配置参数例子
Jan 05 Javascript
jQuery轻松实现无缝轮播效果
Mar 22 jQuery
纯JS实现只能输入数字的简单代码
Jun 21 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
Jun 05 Javascript
layui表格内容溢出的解决方法
Sep 06 Javascript
如何优雅地在Node应用中进行错误异常处理
Nov 25 Javascript
jQuery实现本地存储
Dec 22 jQuery
使用vue-router切换页面时实现设置过渡动画
Oct 31 #Javascript
Vue防止白屏添加首屏动画的实例
Oct 31 #Javascript
vue弹出框组件封装实例代码
Oct 31 #Javascript
使用zrender.js绘制体温单效果
Oct 31 #Javascript
初学vue出现空格警告的原因及其解决方案
Oct 31 #Javascript
selenium+java中用js来完成日期的修改
Oct 31 #Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 #Javascript
You might like
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
学习ExtJS 访问容器对象
2009/10/07 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
JS跨域问题详解
2014/11/25 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
探讨Vue.js的组件和模板
2017/10/27 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
JS实现旋转木马轮播图
2020/01/01 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
Python的Django框架安装全攻略
2015/07/15 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
python实现车牌识别的示例代码
2019/08/05 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
2014年仓库保管员工作总结
2014/12/03 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
奖学金感谢信
2015/01/21 职场文书
锅炉工岗位职责
2015/02/13 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书