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在IE下使用未闭合的xml代码创建元素时的Bug介绍
Jan 10 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
Apr 07 Javascript
JavaScript设计模式之抽象工厂模式介绍
Dec 28 Javascript
react-native DatePicker日期选择组件的实现代码
Sep 12 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
Nov 03 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
Dec 19 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 Javascript
webpack项目使用eslint建立代码规范实现
May 16 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
Aug 07 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
Oct 16 Javascript
微信小程序点击保存图片到本机功能
Dec 13 Javascript
vue实现简易计算器功能
Jan 20 Vue.js
使用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 is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
numpy.where() 用法详解
2019/05/27 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
linux面试题参考答案(9)
2015/01/07 面试题
《和我们一样享受春天》教学反思
2014/02/07 职场文书
医院学雷锋活动策划方案
2014/02/15 职场文书
新闻编辑求职信
2014/04/09 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
语文教师个人工作总结
2015/02/06 职场文书
2015大学生求职信范文
2015/03/20 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python
MySQL系列之十一 日志记录
2021/07/02 MySQL