当用户单击顶部栏时,我正在尝试将元素设置为完整的浏览器高度。动画有效,但是一旦(进入)动画完成,容器就会跳回零高度,而它应该一直保持到用户单击关闭按钮。
动画完成后如何使容器保持 100vh?
我尝试添加高度:100vh;在元素上,但是通过这样做,过渡动画停止工作。(通过删除高度,动画有效但元素消失)
不确定这是否重要,但我将 v-if 更改为 v-show 并在容器上添加了一个键,但这似乎没有什么区别。
<!-- AboutMeComponent.vue -->
<template>
<div>
<div v-show="!extended" class="small-container" @click="extended = !extended">
<h4>
<a href="#">CLICK ME</a>
</h4>
</div>
<ExtendTransition>
<div v-show="extended" key="1" class="main-container">
<div class="icon-container">
<a v-show="extended" href="#" @click="extended = !extended">
<font-awesome-icon icon="times"/>
</a>
</div>
</div>
</ExtendTransition>
</div>
</template>
<!-- ExtendTransition.vue -->
<template>
<transition appear name="extend" mode="out-in">
<slot></slot>
</transition>
</template>
<style lang="scss">
.extend-enter-active,
.extend-leave-active {
transition: 3s;
}
.extend-enter-to,
.extend-leave {
height: 100vh;
}
.extend-leave-to {
height: calc(20px + 1vw);
}
.extend-enter {
height: calc(40px + 3vw);
}
</style>