transform.vue vue过度组件

 

完整的代码, 可以复制引用

<template>
    <div id="app">
        <div class="nav_box">
            <ul>
                <router-link :to="{name:'home'}" exact='exact' class="nav_list_lk" tag="li">home</router-link>
                <router-link to="/about" class="nav_list_lk" tag="li">about</router-link>
                <router-link :to="{name:'document'}"  class="nav_list_lk" tag="li">document</router-link>
                <router-link to="/user" class="nav_list_lk" tag="li">user</router-link>
            </ul>
        </div>
        {{ $route.meta.index}}
        <transition :name="names">
            <router-view></router-view>
        </transition>
        <!--  out-in 当前元素先过渡,新元素后过渡
          in-out 新元素先进行过渡,完成后 当前元素进行过度
          name 查找自定义的  V
          $route.meta 路由元信息,
              <transition name="left" mode="in-out">
            <router-view></router-view>
          </transition>
          -->
    </div>
</template>

<script>
    export default {
        name: 'app',
        data(){
            return{
                names:'left'
            }
        },
        watch: {
            $route(to,from){
                /*  routes: [
                    {
                      meta: {
                        index: 0
                      },
                      path: '/',*/
                console.log(to.meta.index)
                console.log(from.meta.index)
                if(to.meta.index < from.meta.index){
                    this.names='right'
                }else{
                    this.names='left'
                }
            }
        }
    }
</script>
<style>
    /*v可以自定义,后面是固定的  .zf-enter  name 查找自定义的  V */
    .v-enter{opacity:0;}
    .v-enter-to{opacity:1;}
    .v-enter-active{transition:1s;}
    .v-leave{opacity:1;}
    .v-leave-to{opacity:0;}
    .v-leave-active{transition:.5s;}

    .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;}

    .right-enter{transform:translateX(-100%)}
    .right-enter-to{transform:translateX(0);}
    .right-enter-active{transition:1s;}
    .right-leave{transform:translateX(0)}
    .right-leave-to{transform:translateX(100%)}
    .right-leave-active{transition:1s;}
</style>

posted on 2020-04-28 22:52  完美前端  阅读(1505)  评论(0)    收藏  举报

导航