想让路由有过渡动画,需要在<router-view>标签的外部添加<transition>标签,标签还需要一个name属性。
1
2
3
|
<transition
name
=
"fade"
>
<router-view >
</router-view>
</transition>
|
组件过渡过程中,会有四个CSS类名进行切换,这四个类名与transition的name属性有关,比如name="fade",会有如下四个CSS类名:
- fade-enter:进入过渡的开始状态,元素被插入时生效,只应用一帧后立刻删除。
- fade-enter-active:进入过渡的结束状态,元素被插入时就生效,在过渡过程完成后移除。
- fade-leave:离开过渡的开始状态,元素被删除时触发,只应用一帧后立刻删除。
- fade-leave-active:离开过渡的结束状态,元素被删除时生效,离开过渡完成后被删除。
从上面四个类名可以看出,fade-enter-active和fade-leave-active在整个进入或离开过程中都有效,所以CSS的transition属性在这两个类下进行设置。
12
13
|
.fade-enter
{
opacity
:
0
;
}
.fade-leave
{
opacity
:
1
;
}
.fade-enter-active
{
transition
:
opacity
.5s
;
}
.fade-leave-active
{
opacity
:
0
;
transition
:
opacity
.5s
;
}
|
12
13
|
.fade-enter
{
opacity
:
0
;
}
.fade-leave
{
opacity
:
1
;
}
.fade-enter-active
{
transition
:
opacity
.5s
;
}
.fade-leave-active
{
opacity
:
0
;
transition
:
opacity
.5s
;
}
|