vue路由动画订制

 

参照官网路由定义:

<template>
  <div id="app" >
      <transition :name="transitionName">   
        <router-view ></router-view>
     </transition>
  </div>
</template>

<script>

export default {
  name: "app",
  components: { },
  watch: {
    //使用watch 监听$router的变化
    $route(to, from) {
      //   //如果to索引大于from索引,判断为前进状态,反之则为后退状态
      if (to.meta.index > 0) {
        if (to.meta.index < from.meta.index) {
          this.transitionName = "slide-right";
        } else {
          this.transitionName = "slide-left";
        }
      } else if (to.meta.index == 0 && from.meta.index > 0) {
        this.transitionName = "slide-right";
      }
    }
  },
  data() {
    return {
      transitionName: ""
    };
  }
};
</script>

<style lang="less">

/**
  *定义向左滑入右滑出动画
*/
.slide-right-enter-active, .slide-right-leave-active, .slide-left-enter-active, .slide-left-leave-active { will-change: transform; transition: all 0.3s; position: absolute; width: 100%; left: 0; } .slide-right-enter { transform: translateX(-100%); } .slide-right-leave-active { transform: translateX(100%); } .slide-left-enter { transform: translateX(100%); } .slide-left-leave-active { transform: translateX(-100%); } </style>

注意路由meta内 index参数配置:

export default new Router({
    routes: [
        {
            path: '/index',
            name: 'index',
            component: index,
            meta:{
                title:'首页',
                index:0
            },
       children:[{
          path: '/editor',
          component:Editor,
          meta:{
            title:'编辑',
            index:1
            }
        }]
        },
        {
            path: '/list',
            name: 'list',
            component: list,
            meta:{
                title:'产品',
                index:0
            }
        },
        {
            path: '/detail',
            name: 'detail',
            component: detail,
            meta:{
                title:'详情',
                index:0
            }
        }]
})

 

posted @ 2018-10-26 14:18  小莫_yu  阅读(152)  评论(0)    收藏  举报