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笔记 数据的存储与访问性能优化
Aug 02 Javascript
jQuery中setTimeout的几种使用方法小结
Apr 07 Javascript
JS文本框追加多个下拉框的值的简单实例
Jul 12 Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 Javascript
判断横屏竖屏(三种)
Feb 13 Javascript
js实现时间轴自动排列效果
Mar 09 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
Mar 06 Javascript
详解Angular路由之路由守卫
May 10 Javascript
微信小程序实现自定义加载图标功能
Jul 19 Javascript
详解Vue 动态组件与全局事件绑定总结
Nov 11 Javascript
JS实现换肤功能的方法实例详解
Jan 30 Javascript
JavaScript展开操作符(Spread operator)详解
Jul 20 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中JSON数据操作
2015/07/01 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
js 判断 enter 事件
2009/02/12 Javascript
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
Python函数参数操作详解
2018/08/03 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
python实现决策树分类
2018/08/30 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
飞利浦法国官网:Philips法国
2019/07/10 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
班级口号大全
2014/06/09 职场文书
高中班级口号
2014/06/09 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
科技工作者先进事迹
2014/08/16 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
社区活动总结范文
2015/05/07 职场文书
导游词之日本富士山
2020/01/06 职场文书
浅谈如何保证Mysql主从一致
2022/03/13 MySQL
Python作用域和名称空间的详细介绍
2022/04/13 Python
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS