• 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;

  • 相关阅读:
    pytest 框架生成 pytest
    pytest 之数据驱动参数化:pytest.mark.parametrize
    web 网站表单测试、搜索查询测试、删除测试、数据库测试知识点
    pytest 之 fixture 的前置后置功能
    pytest 框架之pytest-html报告生成
    Initialization of bean failed; nested exception is java.lang.
    使用jmeter测试Oracle&&MySQL数据库性能
    jmeter的日常特殊参数化
    压测出现各种奇葩问题,求围观
    weblogic性能调优
  • 原文地址:https://www.cnblogs.com/szyblogs/p/7069577.html
Copyright © 2020-2023  润新知