Vue3实现过度动画效果
程序员文章站
2022-05-02 20:06:04
...
使用内置transition组件完成动画
<template>
<div>
<button @click="isShow = !isShow">
显示/隐藏
</button>
<transition name="name">
<h2 v-if="isShow">
动画展示的内容
</h2>
</transition>
</div>
</template>
<script>
export default{
data() {
return {
isShow: true
}
}
}
</script>
<style scoped>
// name可以根据自己定义来改变css类的前缀名, 默认v-enter-from
.name-enter-from,
.name-leave-to {
opacity: 0;
}
.name-enter-to,
.name-leave-from {
opacity: 1;
}
.name-enter-active,
.name-leave-active {
// transiton: 过度效果css属性名称 过度时间 过度速度曲线 何时开始
transition: opacity 2s ease;
}
// 执行动画效果
.name-enter-active{
animation: bounce 1s ease;
}
.name-leave-active{
animation: bounce 1s ease reverse;
}
@keyframes bounce{
0% {
transform: scale(0);
}
50% {
transform: scale(2);
}
100 {
transform: scale(1);
}
}
</style>
- v-enter-from:定义进入过度的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。
- v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过渡时间,延迟和曲线函数。
- v-enter-to:定义进入过渡的结束状态。在元素被插入之后下一帧生效(与此同时v-enter-from被移除),在过渡/动画米完成之后移除。
- v-leave-from:定义离开过渡的开始状态。在俩口i过渡被触发时立刻生效,下一帧被移除。
- v-leave-active:定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被出发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。
- v-leave-to:离开过渡的结束状态。在离开过渡被触发之后下一帧生效(与此同时v-leave-from被移除),在过渡/动画米完成之后移除。