2

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

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

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

提前致谢 :-)

./cj

4

2 回答 2

2

如果您在所有框被渲染后只浏览一次并将它们分组为“页面” - 对 DOM div 的引用集合,这些引用在父 div 的 [y1, y2] 垂直坐标之间可见。你会有<total height of parent div> / <visible height of parent div>页面。
您预加载第一页的内容,然后在每个滚动事件中检查是否应加载下一页框的内容。

于 2012-09-24T07:49:34.777 回答
1

参考 -

元素“在视图中”事件插件

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

延迟加载插件

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

于 2012-09-24T07:09:41.097 回答