如何使用javascript检测可见(在视图中)元素

时间:2012-09-24 07:03:37

标签: javascript jquery performance jquery-ui internet-explorer

我的div(#diagram)大于浏览器中的实际可见区域。 #diagram包含多达1500个“盒子”(其他div元素),我想知道这1500个盒子中的哪一个实际上对用户是真的可见,以便我可以在它们进入视图时使用ajax填充它们。我实际上有一些工作代码,但它遍历由onscroll()事件触发的所有元素。这在Chrome中也是如此,但当然我的客户端仍然使用邪恶的浏览器IE8,滚动时所有元素的循环完全迫使我的应用程序跪下。

当元素进入视图或任何其他选项以检测“真实”可见性时是否会触发某种事件?

环境:jQuery / jQueryUI(最新),Internet Explorer 8

提前致谢: - )

./ CJ

2 个答案:

答案 0 :(得分:2)

如果您在渲染完所有框时只进行一次,并将它们分组为“页面” - 在父div的[y1,y2]垂直坐标之间可见的DOM div的引用集合,该怎么办?您将拥有<total height of parent div> / <visible height of parent div>页 您预先加载第一页的内容,然后在每个滚动事件上检查是否应加载下一页框的内容。

答案 1 :(得分:1)

参考 -

Element ‘in view’ Event Plugin

滚动窗口时,事件会根据视口高度和scrollTop位置检查元素的位置。

Lazy Load Plugin

Lazy Load是一个用JavaScript编写的jQuery插件。它延迟了长网页中图像的加载。视口外的图像(网页的可见部分)在用户滚动到它们之前不会被加载