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

使用Element.animate()实现下滑动画时不流畅的问题排查

用Element.animate()实现下滑动画不流畅的问题

我尝试通过Element.animate()实现下滑动画,代码如下:

errorsMessagesCollapsableContainerMountingPoint.replaceWith(errorsMessagesCollapsableContainer);

errorsMessagesCollapsableContainer.animate(
  [
    { height: 0, overflow: "hidden" },
    { height: "auto", overflow: "visible" }
  ],
  {
    duration: 2000
  }
);

但动画并不流畅:
动画效果展示

我在Animation API的使用上是否遗漏了什么?错误列表的HTML结构仅为<ul><li>...</li></ul>。

更新

后来了解到动画仅支持数值类型的属性值,于是修改了代码:

// 未挂载时无法获取clientHeight
errorsMessagesCollapsableContainer.style.overflow = "hidden";
errorsMessagesCollapsableContainer.style.visibility = "hidden";
errorsMessagesCollapsableContainer.style.position = "absolute";

errorsMessagesCollapsableContainerMountingPoint.replaceWith(this.#errorsMessagesCollapsableContainer);

const errorsMessagesCollapsableContainerHeight: number = errorsMessagesCollapsableContainer.clientHeight;


errorsMessagesCollapsableContainer.style.visibility = "visible";
errorsMessagesCollapsableContainer.style.position = "static";


this.#errorsMessagesCollapsableContainer.animate(
  [
    { height: 0 },
    { height: errorsMessagesCollapsableContainerHeight }
  ],
  2000
);

但动画仍然不流畅。

请注意,本问题仅关注纯JavaScript Element.animate()解决方案,不考虑CSS动画或第三方方案。


内容的提问来源于stack exchange,提问作者Takeshi Tokugawa YD

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:42:50