【发布时间】:2018-07-26 06:24:45
【问题描述】:
通过单击一个按钮,我成功地执行了一个 div 的转换(通过它的“高度”属性)以显示一些菜单选项。在过渡结束时,我希望将“高度”属性设置为“自动”,以便它可以适应其中内容的任何变化。
我已尝试在以下代码中使用“最大高度”,但转换似乎不适用于“最大高度”。如果我使用“高度”,则过渡有效。我尝试使用javascript在转换后通过另一个触发器将“height”属性设置为“auto”,然后在执行该转换之前将其设置为当前高度(而不是“auto”)以关闭 DIV,通过更改在课堂上,但这失败了 - 我猜是因为将元素高度设置为任何值优先于试图更改相同属性的类中的任何后续更改。请不要 JQUERY 回复。
CSS:
.sbox{
height: 0px;
transition: height 1s ease-out;
overflow: hidden;
}
.sboxopen{
max-height: 430px;
overflow: hidden;
transition: max-height 1s ease-out;
}
JAVASCRIPT: “点击”事件
elem.className = 'sboxopen'; // Show boax
elem.className = 'sbox'; // Hide box
HTML:
<div class="sbox">
// CONTENT IN HERE
<div>
<button id="id">Show options</button>
【问题讨论】:
-
您可以添加您的 HTML 代码,或者更好地使用 SO sn-p 给我们一个演示
-
嗨。如果不查看您的代码的最小示例,我们可能无法帮助您解决问题。请阅读minimal reproducible example,看看你是否可以创建一个。
-
max-height 技巧仅在您希望 div 的高度从特定值增加到自动时才有效。我不清楚你想要达到的目标,但我相信你需要的是最小高度。
-
我认为这是this的副本。
标签: javascript css css-transitions