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 相关文章推荐
js压缩工具 yuicompressor 使用教程
Mar 31 Javascript
xss文件页面内容读取(解决)
Nov 28 Javascript
js验证身份证号有效性并提示对应信息
Oct 19 Javascript
jQuery获取checkbox选中的值
Jan 28 Javascript
jQuery学习笔记之回调函数
Aug 15 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
Sep 04 Javascript
Vue.js第四天学习笔记
Dec 02 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
微信小程序解除10个请求并发限制
Dec 18 Javascript
Vue自定义全局Toast和Loading的实例详解
Apr 18 Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 Javascript
JS+CSS实现过渡特效
Jan 02 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中实现记住密码自动登录的代码
2011/03/02 PHP
PHP实现的简单日历类
2014/11/29 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
js实现动态时钟
2020/03/12 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
初步讲解Python中的元组概念
2015/05/21 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
中专毕业生自荐信范文
2013/11/28 职场文书
大学生个人自荐信
2014/02/24 职场文书
读书活动总结范文
2014/04/26 职场文书
员工保密承诺书
2014/05/28 职场文书
公司活动总结范文
2014/07/01 职场文书
人力资源职位说明书
2014/07/29 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
护士岗位竞聘书
2015/09/15 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers