我有很多数据被放入 <DIV>
与 overflow: auto
风格。 Firefox 优雅地处理了这个问题,但 IE 在滚动 div 和在页面上执行任何 Javascript 时变得非常缓慢。
起初我以为 IE 无法处理其 DOM 中的那么多数据,但后来我做了一个简单的测试,我应用了 visibility: hidden
为超过前 100 个元素的每个元素添加样式。它们仍然占用空间并导致滚动条出现。当我这样做时,IE 不再有数据问题。
所以,我想要一个“智能”div 来隐藏所有当前在屏幕上不可见的嵌套 div 元素。对此有一个简单的解决方案还是我需要一个无限循环来计算滚动条的位置?如果没有,是否有一个特定的事件可以连接到我可以执行此操作的地方?是否有 jQuery 选择器或插件可以让我选择屏幕上当前不可见的所有元素?
最佳答案
您想使用 display: none
而不是 visibility: hidden
使用 visibility: hidden 隐藏的元素仍然会在视口(viewport)中占用它们的空间。
至于使用“智能”div,正如您所描述的那样。您可能对 jQuery autopager plugin 之类的内容感兴趣.
关于javascript - 如何更改不在屏幕上的元素的 CSS 可见性样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2740647/