
css 过渡动画与高度撑起的处理
在网页设计中,当使用 css 过渡动画时,有时可能会遇到元素在显示时高度瞬间撑起的意外情况。以下就遇到的这个问题进行分析和解决。
js bin 链接:https://jsbin.com/hofoconeru/...
从问题图片中可以看到,<p> 标签被显示时,<box> 元素的高度被瞬间撑起,并未满足过渡动画指定的 0.5s 延迟。这是因为 css 动画不支持 height: auto 的自动高度。
立即学习“前端免费学习笔记(深入)”;
要实现当 <box> 高度变化时添加过渡动画,可以采取以下步骤:
- 使用 javascript 获取 .box 元素的实际高度。
- 点击按钮时切换高度,避免使用 height: auto。
提供的 css 代码如下:
.box {
background-color: blue;
overflow: hidden;
transition: all 1s;
}对应的 javascript 代码如下:
const autoH = $('.box').height();
let h = 0;
$('.box').height(0);
$('.button').click(function() {
$('.box').height(h ^= autoH);
});通过这些步骤,可以在<box> 元素高度发生变化时实现平滑的过渡动画效果。










