【发布时间】:2019-07-02 21:31:55
【问题描述】:
我有一个父 div 和一个子 div。子 div 通过 v-if 显示。我可以向子元素添加一个过渡,但是一旦过渡超过父元素的高度就会突然改变并且看起来不太好。
我想要 jQuery 的 slideToggle() 函数。
这是我的 html,我通过转换 opacity 来使用淡入淡出效果:
<div class="my-div">
<p>some content</p>
<transition name="fade" mode="out-in">
<p key=1 v-if="show">hello</p>
</transition>
</div>
这是过渡 css:
.fade-enter-active,
.fade-leave-active {
transition: opacity .5s
}
.fade-enter,
.fade-leave-to {
opacity: 0
}
.my-div {
background: lightgreen;
}
这是我的代码:
https://jsfiddle.net/x15Lw6a3/
我不知道如何进行高度转换。根据其他一些问题,我尝试从opacity 切换到height 和max-height,但它只是上下切换。
感谢任何想法或教程链接。谢谢!
【问题讨论】:
-
不确定你想要什么。是想让父div在孩子消失后保持高度还是想让父div的高度平滑减小?
-
我需要父母的身高在孩子出现时增加,然后在孩子消失时降低。淡入淡出只是一个例子来展示我到目前为止所理解的。我需要高度变化效果来代替淡入淡出效果。
标签: css vue.js vuejs2 vue-component transition