虚拟列表本来采用的是静态高度+直接计算偏移的方式,而在大模型输出文字流的场景当中,本身文本流是不定高的。此时就要采用 预估高度 + 动态偏移 的原理

  • 给每个 Item 一个预估高度(Estimated Height)。
  • 渲染后通过 ResizeObserverref 获取真实高度并缓存。
  • 动态更新后续所有元素的 top 偏移量和滚动条的总高度