【发布时间】:2015-10-30 21:06:54
【问题描述】:
玉例子
div.parent
div.child1
div.child2
Child1 在加载时可见,基于单击,Child1 将变为隐藏,而 Child2 将变为可见。再次点击可以扭转这种情况。
当隐藏/取消隐藏时,孩子应该通过高度变化进行转换 - 从 100% 到 0%,反之亦然。 父级也应该通过改变高度来匹配新可见的子级。
从视觉上看,child1 会在 child2“向下滚动”时“向上滚动”,父级将根据最终大小进行扩展或收缩。
这可以通过 CSS 过渡来完成吗?
【问题讨论】:
-
Transition 部分可以用 CSS 完成,但触发更改的隐藏/取消隐藏部分不能完成。
-
@Harry 同意你的观点,要听到“结束动画”事件,你需要 JavaScript。
-
除非 div 具有设定的高度,否则您也无法在
auto/100%之间转换/动画。 -
@Paulie_D:这可以通过设置
max-height(高于预期的最大值)并进行过渡来很好地克服。 -
@Harry 是的,使用 max-height 是一种选择,但我认为这取决于 知道 提前最大高度(或设置一些可能不合理的数字)和(希望) 这不会干扰父身高。坦率地说,这是几行简单的 JS/JQ,所以我会这样做。
标签: html css css-transitions css-animations