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中的私有成员
Sep 18 Javascript
Javascript学习笔记二 之 变量
Dec 15 Javascript
javascript一元操作符(递增、递减)使用示例
Aug 07 Javascript
javascript中的五种基本数据类型
Aug 26 Javascript
Node.js中使用jQuery的做法
Aug 17 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
Nov 05 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
Nov 07 Javascript
实现JavaScript高性能的数据存储
Dec 11 Javascript
微信网页授权并获取用户信息的方法
Jul 30 Javascript
JavaScript时间与时间戳的转换操作实例分析
Dec 07 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
Apr 16 Javascript
Vue组件通信的几种实现方法
Apr 25 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
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
JS实现省市县三级下拉联动
2020/04/10 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
Python饼状图的绘制实例
2019/01/15 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
电子商务专业推荐信范文
2013/12/02 职场文书
最新的互联网创业计划书
2014/01/10 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
高中军训感言400字
2014/02/24 职场文书
市场策划求职信
2014/08/07 职场文书
离婚协议书范文2015
2015/01/26 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
Nginx反向代理、重定向
2022/04/13 Servers