我有一个视口 div,其中包含一个非常大的滚动 div,其中的元素绝对位于内部。(这些会随着视口滚动而被回收和重新定位,因此即使数据集很大,要管理的元素数量也很少。)在 Firefox 和 Chrome 中,我可以在视口内一直滚动到底部,即使包含的 div是数百万像素高。但是,在 IE 中,滚动 div 能够滚动的距离似乎是有限制的。
在 IE10 中,最大值约为 1533900 像素。滚动到底部会显示位于边界的元素,但更下方的元素无法访问。在 WinXP 上的 IE8 中,它甚至更少(~1193030 像素)。这些数字并不接近传统的整数溢出限制,所以我想知道它们是由任何标准还是由 Microsoft 指定的。
还有其他方法可以在大型数据集中实现滚动,但这种方法具有完全原生滚动条行为的好处。如果在 IE 中有一个基本限制,我想更好地理解它。
<div style="width: 500px; height: 500px; overflow: auto;">
<div style="width: 500px; height: 10000000px; overflow: hidden; position: relative;">
<span style="left: 0px; top: 0px; position: absolute;">top</span>
<span style="left: 0px; top: 1193030px; position: absolute;">IE8 limit (approximate)</span>
<span style="left: 0px; top: 1533900px; position: absolute;">IE10 limit (approximate)</span>
<span style="left: 0px; top: 9999950px; position: absolute;">bottom</span>
</div>
</div>