如何解决 CSS 过渡动画中高度撑起的意外情况?

如何解决 css 过渡动画中高度撑起的意外情况?

css 过渡动画与高度撑起的处理

在网页设计中,当使用 css 过渡动画时,有时可能会遇到元素在显示时高度瞬间撑起的意外情况。以下就遇到的这个问题进行分析和解决。

js bin 链接:https://jsbin.com/hofoconeru/...

从问题图片中可以看到,

标签被显示时, 元素的高度被瞬间撑起,并未满足过渡动画指定的 0.5s 延迟。这是因为 css 动画不支持 height: auto 的自动高度。

要实现当 高度变化时添加过渡动画,可以采取以下步骤:

  1. 使用 javascript 获取 .box 元素的实际高度。
  2. 点击按钮时切换高度,避免使用 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);
});

通过这些步骤,可以在 元素高度发生变化时实现平滑的过渡动画效果。

以上就是如何解决 CSS 过渡动画中高度撑起的意外情况?的详细内容,更多请关注其它相关文章!