vue+vue-router转场动画的实例代码


Posted in Javascript onSeptember 01, 2018

Vue+WebPack+HBuilder 项目记录

项目搭建完毕了,但是由于是单页应用嵌入HBuilder的时候无法利用它的转场动画,于是找到了vue的转场动画写法,使体验与APP靠近,在此记录;

1.首先我们要监听路由然后判断其是前进还是后退,来实现不同的动画

export default {
 name: 'app',
 data () {
  return {
  transitionName: 'slide-left'
  }
 },
 watch: {
 '$route' (to, from) {
  const toDepth = to.path.split('/').length
  const fromDepth = from.path.split('/').length
  this.transitionName = toDepth < fromDepth ? 'slide-right' : 'slide-left'
 }
 }
}

2.template

<transition :name="transitionName">
 <router-view class="child-view"></router-view>
</transition>

3.css;修改css得到不同的效果。

.child-view {
 position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -moz-box-sizing: border-box;
    box-sizing: border-box;
 transition: all .6s cubic-bezier(.55,0,.1,1);
}
.slide-left-enter, .slide-right-leave-active {
 opacity: 0;
 -webkit-transform: translate(-80px, 0);
 transform: translate(-80px, 0);
}
.slide-left-leave-active, .slide-right-enter {
 opacity: 0;
 -webkit-transform: translate(100%, 0);
 transform: translate(100%, 0);
}

上面动画可作为不同级页面的转场动画,下面可作为同级页面转场动画,无需监听路由

1.template

<transition name="slide-fade">
 <router-view></router-view>
</transition>

2.css

.slide-fade-enter-active {
 transition: all .3s ease;
 -webkit-transition: all .3s ease;
 -moz-transition: all .3s ease;
 -ms-transition: all .3s ease;
 -o-transition: all .3s ease;
}
.slide-fade-leave-active {
 transition: all .5s ease;
 -webkit-transition: all .5s ease;
 -moz-transition: all .5s ease;
 -ms-transition: all .5s ease;
 -o-transition: all .5s ease;
}
.slide-fade-enter{
 transform: translateX(20px);
 -webkit-transform: translateX(20px);
 -moz-transform: translateX(20px);
 -ms-transform: translateX(20px);
 -o-transform: translateX(20px);
 opacity: 0;
}
.slide-fade-leave-active {
 opacity: 0;
}

以上这篇vue+vue-router转场动画的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJS扩展 垂直tabLayout实现代码
Jun 21 Javascript
JavaScript 函数调用规则
Sep 14 Javascript
jquery实现背景墙聚光灯效果示例分享
Mar 02 Javascript
js判断元素是否隐藏的方法
Jun 09 Javascript
原生js实现轮播图的示例代码
Feb 20 Javascript
JavaScript mixin实现多继承的方法详解
Mar 30 Javascript
详解axios在vue中的简单配置与使用
May 10 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
Apr 09 Javascript
JavaScript如何实现元素全排列实例代码
May 14 Javascript
vue页面引入three.js实现3d动画场景操作
Aug 10 Javascript
解决vant title-active-color与title-inactive-color不生效问题
Nov 03 Javascript
Vue-router 切换组件页面时进入进出动画方法
Sep 01 #Javascript
vue 实现在函数中触发路由跳转的示例
Sep 01 #Javascript
jQuery实现表格隔行换色
Sep 01 #jQuery
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 #Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
Sep 01 #Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
Aug 31 #Javascript
vue router 跳转后回到顶部的实例
Aug 31 #Javascript
You might like
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
phpmail类发送邮件函数代码
2012/02/20 PHP
鼠标图片振动代码
2006/07/06 Javascript
javascript 常用代码技巧大收集
2009/02/25 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
Angular 项目实现国际化的方法
2018/01/08 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python中argparse模块用法实例详解
2015/06/03 Python
python妙用之编码的转换详解
2017/04/21 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
python批量修改xml属性的实现方式
2020/03/05 Python
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
测绘工程系学生的自我评价
2013/11/30 职场文书
运动会入场解说词
2014/02/07 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
母亲节演讲稿
2014/05/27 职场文书
洗手间标语
2014/06/23 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
化工生产实习心得体会
2016/01/22 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL
SpringBoot Http远程调用的方法
2022/08/14 Java/Android