基本思路
- 在 Vue 中,通过
transition
组件来实现过渡效果。Vue 的虚拟 DOM 会在元素插入、更新或移除时,自动为其添加或移除特定的 CSS 类名,基于这些类名定义过渡的 CSS 动画,从而实现淡入淡出效果。
- 当按钮点击时,通过数据绑定控制 div 元素的显示与隐藏,
transition
组件会根据元素状态变化(显示/隐藏)来触发过渡效果。
主要代码片段
- 模板部分:
<template>
<div>
<button @click="toggleShow">点击切换</button>
<transition name="fade">
<div v-if="isShow" key="fadeDiv">这是要淡入淡出的 div</div>
</transition>
</div>
</template>
- 脚本部分:
<script>
export default {
data() {
return {
isShow: false
}
},
methods: {
toggleShow() {
this.isShow =!this.isShow;
}
}
}
</script>
- CSS 部分:
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s;
}
.fade-enter,
.fade-leave-to {
opacity: 0;
}