美文网首页Vue学习
路由的过渡动画

路由的过渡动画

作者: 冰滩波纹 | 来源:发表于2018-09-06 15:55 被阅读80次

    想让路由有过渡动画,需要在<router-view>标签的外部添加<transition>标签,标签还需要一个name属性

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

    我们在/src/App.vue文件里添加了<transition>标签,并给标签起了一个名字叫fade

    css过渡类名: 组件过渡过程中,会有四个CSS类名进行切换,这四个类名与transition的name属性有关,比如name=”fade”,会有如下四个CSS类名:

    1. fade-enter:进入过渡的开始状态,元素被插入时生效,只应用一帧后立刻删除。
    2. fade-enter-active:进入过渡的结束状态,元素被插入时就生效,在过渡过程完成后移除。
    3. fade-leave:离开过渡的开始状态,元素被删除时触发,只应用一帧后立刻删除。
    4. fade-leave-active:离开过渡的结束状态,元素被删除时生效,离开过渡完成后被删除。

    从上面四个类名可以看出,fade-enter-activefade-leave-active在整个进入或离开过程中都有效,所以CSS的transition属性在这两个类下进行设置。

    那我们就在App.vue页面里加入四种CSS样式效果,并利用CSS3的transition属性控制动画的具体效果。代码如下:

    .fade-enter {
      opacity:0;
    }
    .fade-leave{
      opacity:1;
    }
    .fade-enter-active{
      transition:opacity .5s;
    }
    .fade-leave-active{
      opacity:0;
      transition:opacity .5s;
    }
    

    上边的代码设置了改变透明度的动画过渡效果,但是默认的mode模式in-out模式,这并不是我们想要的。下面我们学一下mode模式。
    过渡模式mode:
    in-out:新元素先进入过渡,完成之后当前元素过渡离开。
    out-in:当前元素先进行过渡离开,离开完成后新元素过渡进入。

    <transition name="fade" mode="out-in">
      <router-view/>
    </transition>
    

    相关文章

      网友评论

        本文标题:路由的过渡动画

        本文链接:https://www.haomeiwen.com/subject/rsyxgftx.html