vue中怎么让css动画播放结束后再隐藏
时间: 2024-03-21 21:44:21 浏览: 258
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
可以使用Vue的过渡动画实现这个效果。具体做法是:
1. 在需要隐藏的元素上添加`v-if`或`v-show`指令,用于控制元素的显示和隐藏。
2. 在元素上添加过渡动画,可以使用Vue提供的`<transition>`组件或`<transition-group>`组件。
3. 在过渡动画中监听过渡结束事件`@after-leave`,在事件处理函数中将元素隐藏。
下面是一个示例代码:
```html
<template>
<div>
<button @click="show = !show">Toggle</button>
<transition name="fade" @after-leave="hide">
<div v-if="show" class="box">Hello World</div>
</transition>
</div>
</template>
<script>
export default {
data() {
return {
show: true
}
},
methods: {
hide() {
this.show = false
}
}
}
</script>
<style>
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s;
}
.fade-enter,
.fade-leave-to {
opacity: 0;
}
.box {
background-color: #ccc;
padding: 20px;
}
</style>
```
在上面的代码中,使用了Vue提供的过渡动画组件`<transition>`,并且指定了过渡效果的名称`fade`。在过渡动画中,监听了过渡结束事件`@after-leave`,在事件处理函数中将元素隐藏。同时,还定义了过渡效果的CSS样式,用于控制元素的渐入渐出效果。
阅读全文