You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tailwind垂直步骤器动画问题:内容高度适配与动画保留

解决方案:用max-height模拟自适应高度的过渡动画

问题核心在于CSS过渡的机制:过渡动画需要明确的数值起点和终点,h-fit是浏览器动态计算的高度值,无法被过渡动画识别,所以替换成h-fit后动画直接失效。

解决思路是用max-height模拟自适应高度的展开/收起动画:

  • 初始状态设为max-h-0,配合overflow-y-hidden隐藏内容
  • 激活时设置一个足够容纳所有步骤内容的max-height值(比如max-h-[1000px],可根据实际内容调整)
  • 保留transition-all类,让max-height的变化产生平滑动画

修改后的代码段:

<div className={`overflow-y-hidden max-h-0 mt-5 transition-all ease-in-out duration-1000 flex flex-col border border-white ${ stepIdx === currentStep ? "max-h-[1000px]" : "" }`} >
  <div className={`${ isCurrent(stepIdx) ? "text-white" : "text-gray-500" } mb-5`} >
    {step.description}
  </div>
</div>
{isCurrent(stepIdx) ? (
  <Buttons handleNext={handleNext} handleBack={handleBack} />
) : (
  ""
)}
</div>

补充说明:

  • 这个方法的关键是给max-height设置远大于实际内容高度的值,展开时内容会自然适配自身高度,同时过渡动画正常生效
  • 如果后续步骤内容高度有变化,只需调整max-h-[xxx]的数值,确保能覆盖最大内容高度即可

内容的提问来源于stack exchange,提问作者zilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:25:17