zoukankan      html  css  js  c++  java
  • Vue-router结合transition实现app前进后退动画切换效果

    一丶首先配置路由并且修改路由配置

    路由配置就不讲了
    重点,给VueRoute添加一个goBack方法,用于记录路由的前进后退状态 this.isBack = true 

    VueRouter.prototype.goBack = function () { 
      this.isBack = true
      window.history.go(-1)
    }

     

    二丶监听路由变化(在路由变化时判断此时的路由状态是前进还是后退)

    <template>
      <div>

        动态绑定路由动画,根据路由状态的不同绑定不同的路由动画分别为  :‘slide-left’  和 'slide-right'

        <transition :name="transitionName"> 
          <router-view class="Router"></router-view>
        </transition>
      </div>
    </template>

    <script>
    export default {
      data() {
        return {
          transitionName: 'slide-right'  // 默认动态路由变化为slide-right
        }
      },
      watch: {
       '$route' (to, from) {
        let isBack = this.$router.isBack  //  监听路由变化时的状态为前进还是后退
          if(isBack) {
            this.transitionName = 'slide-right'
          } else {
                 this.transitionName = 'slide-left'
         }
      this.$router.isBack = false
      }
       }
     }
    </script>

    三丶给前进后退动画添加不同的动画效果,具体代码如下:

    <style>

    .Router {
         position: absolute;
          100%;
         transition: all .8s ease;
         top: 40px;
    }

    .slide-left-enter,
     .slide-right-leave-active {
         opacity: 0;
        -webkit-transform: translate(100%, 0);
        transform: translate(100%, 0);
    }

    .slide-left-leave-active,
    .slide-right-enter {
         opacity: 0;
        -webkit-transform: translate(-100%, 0);
        transform: translate(-100% 0);
    }
    </style>

    四丶路由前进的时候按正常方法走就行了;

    五丶后退的时候调用goBack方法就OK;

  • 相关阅读:
    MVVM MVC
    ASP.NET MVC中使用Bundle打包压缩js和css的方法
    BundleConfig的作用
    MVC中使用BundleConfig.RegisterBundles引用Css及js文件发布后丢失的问题
    Java面试题-1
    C语言程序设计I—寒假作业
    跟奥巴马一起画方块
    201655222第三周课上作业补做
    20165222第二周学习总结
    20165222第一周课上测试补做
  • 原文地址:https://www.cnblogs.com/szyblogs/p/7069577.html
Copyright © 2011-2022 走看看