javascript - 如何更改不在屏幕上的元素的 CSS 可见性样式?

标签 javascript jquery html css

我有很多数据被放入 <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/

相关文章:

javascript - 文本区域值从选择选项值开始不断递增

php - 如何更改PDF文件

javascript - 顶部的粘性标题更改颜色

javascript - 将 xml 加载到 div 时的 AJAX 竞争条件

javascript - 模态主体未出现在 Bootstrap 模态中

html - 可滚动表格 css,如何设置百分比宽度?

javascript - Styled-Components 的 .attrs() 函数的用例是什么?

javascript - NextJS API |应用程序在部署和开发模式下工作,但在我运行下一次构建时却不行 |被拒绝

javascript - 当从 Canvas 应用程序调用 FB.login 时,为什么 Facebook 突然从使用弹出式身份验证改为使用灯箱身份验证?

javascript - 将 javascript 对象数组发送到 MVC4 Controller