本文最后更新于:2024年4月25日 上午
Transion
组件使用
Transition
组件只能拥有单个子组件或子元素,且子组件只能有一个根节点。
该组件用于v-if
,v-show
或单个component
组件
name
属性用于定义类名前缀(默认为v
)
1 2 3 4 5
| <template> <Transition name="transition"> <div v-if="visible"></div> </Transition> </template>
|
过渡动画
对于简单的动画可以使用[前缀]-enter-active
类声明一个入场动画, 使用[前缀]-leave-active
类声明一个出场动画, 动画结束帧最好与组件展示样式一至
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| .transition { &-enter-active { animation: enter 0.3s ease-out; }
&-leave-active { animation: enter 0.3s ease-out reverse; } }
@keyframes enter { from { transform: translateX(-100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| %active { transition: opacity 0.3s ease-out, transform 0.3s ease-out; }
%out { opacity: 0; transform: translateX(-100%); }
%in { opacity: 1; transform: translateX(0); }
.transition { &-enter { &-active { @extend %active; } &-from { @extend %out; } &-to { @extend %in; } }
&-leave { &-active { @extend %active; } &-from { @extend %in; } &-to { @extend %out; } } }
|
TransitionGroup
TransitionGroup
用于为一组组件/元素创建过渡动画,多用于v-for
列表(每个子元素都要一个不同的key
)
组件使用