等待无限滚动完成加载-Javascript
我正在使用一个“无限滚动”页面,当用户滚动到页面底部时,该页面一次最多调用40个元素。如何检测最近集合的所有内容已加载的时刻 这仅适用于初始页面加载:等待无限滚动完成加载-Javascript,javascript,jquery,html,javascript-events,infinite-scroll,Javascript,Jquery,Html,Javascript Events,Infinite Scroll,我正在使用一个“无限滚动”页面,当用户滚动到页面底部时,该页面一次最多调用40个元素。如何检测最近集合的所有内容已加载的时刻 这仅适用于初始页面加载: $(window).load(function() { // Do something }); 当页面在加载之后很长时间内出现“加载”时,是否存在类似的情况 抱歉,如果这是另一个问题的重复。我在其他任何地方都找不到解决方案。在进一步挖掘之后,我使用了这种方法的一种变体 我的最终结果如下所示: function ($container,
$(window).load(function() {
// Do something
});
当页面在加载之后很长时间内出现“加载”时,是否存在类似的情况
抱歉,如果这是另一个问题的重复。我在其他任何地方都找不到解决方案。在进一步挖掘之后,我使用了这种方法的一种变体 我的最终结果如下所示:
function ($container, previousCount, callback) {
var _imgs = $container.find('img'),
_newImages = _imgs.slice(previousCount), // 'start index' for new images
imgCount = _newImages.length, // count how many new ones exist
counter = 0;
_imgs.on('load', function() { // Count loaded
runCallback(20, callback);
}).on('error', function() { // Count errors, anyway, to reach total
runCallback(20, callback);
});
function runCallback(counterLimit, callback) {
// if counter meets new count or hits counter limit, run callback
counter++;
if (counter == imgCount || counter == counterLimit) {
callback();
}
}
}
我为什么需要这样做的一些怪癖previousCount
实际上可以大于DOM中当前图像的总数,这是因为人们可以跳过无限滚动的不同部分。因此,还需要检查counter==counterLimit
另外,我需要在加载新的图像集时运行脚本,无论它们是成功还是失败。这就是为什么我同时使用,.on('load'
和.on('error'
)来运行计数。我注意到有时图像可能会出错(在这种特殊情况下这很好),它会抛出计数,并且永远不会触发回调
==================
编辑04/27/16:我发现了一个插件,可以为您处理这个问题,而且似乎工作得很好(除了在上一次加载之前的几个后续加载).退房。如果无限,你怎么能等到最后呢?lol@AdamBuchananSmith-我指的是下一组元素何时完成加载。无限卷轴不会一次加载所有可能的数据,只会不断增加数据,直到用户执行加载下一个增量的操作(通常是页面底部附近的卷轴)。我想检测最近增量何时完成渲染。我从未读过问题,我只读过标题