vue切换组件,路由过渡渐入渐出效果

路由跳转或者组件的显示隐藏的淡入淡出

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

<transition name="fade" mode="out-in">

  <router-view ></router-view>

</transition>

css过渡类名:

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

fade-enter:进入过渡的开始状态,元素被插入时生效,只应用一帧后立刻删除。

fade-enter-active:进入过渡的结束状态,元素被插入时就生效,在过渡过程完成后移除。

fade-leave:离开过渡的开始状态,元素被删除时触发,只应用一帧后立刻删除。

fade-leave-active:离开过渡的结束状态,元素被删除时生效,离开过渡完成后被删除。

过渡的样式:

.fade-enter-active, .fade-leave-active {

transition: all 0.3s;

}

.fade-enter, .fade-leave-to {

opacity: 0;

}

过渡模式mode:

  • in-out:新元素先进入过渡,完成之后当前元素过渡离开。
  • out-in:当前元素先进行过渡离开,离开完成后新元素过渡进入。