Skip to content

特殊说明 ​

百万级数据 ​

已经支持。容器是 overflow: hidden、滚动条自绘,没有需要被撑开的占位元素,各段的 transform 只携带「该段位置减去当前偏移量」的残差,因此碰不到浏览器对元素高度与单个 transform 位移的 上限(Chrome 实测 33,554,428 / 33,554,400px)。

100 万项 × 100px(1 亿 px)实测 8 个采样点定位误差全为 0px。靠占位元素撑开滚动空间的方案 会在 33.5 万行(默认行高)左右撞墙,超限部分永远滚不到。

滚动性能 ​

列表本身能跑满帧,剩下两件事只能由使用方避免:

  1. DOM 复杂时把渲染层和交互层分开:列表项里只放展示用的元素,悬浮菜单、弹层这类交互挂到列表外面去。
  2. 别在每次渲染里新建大量闭包和事件监听,事件挂在容器上用委托。