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 相关文章推荐
Jquery方式获取iframe页面中的 Dom元素
May 07 Javascript
JavaScript模拟鼠标右键菜单效果
Dec 08 Javascript
JS从一组数据中找到指定的单条数据的方法
Jun 02 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
Sep 23 Javascript
原生js实现轮播图的示例代码
Feb 20 Javascript
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
js图片放大镜实例讲解(必看篇)
Jul 17 Javascript
vue左右侧联动滚动的实现代码
Jun 06 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
解决vue项目router切换太慢问题
Jul 19 Javascript
Vue绑定用户接口实现代码示例
Nov 04 Javascript
利用 JavaScript 构建命令行应用
Nov 17 Javascript
使用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执行速度全攻略(上)
2006/10/09 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
python编程嵌套函数实例代码
2018/02/11 Python
python如何生成网页验证码
2018/07/28 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
简历自荐信
2013/12/02 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
创业计划书之熟食店
2019/10/16 职场文书
图神经网络GNN算法
2022/05/11 Python