我面临的问题与该问题完全相同-Need small logic for infinite scroll jquery
唯一的问题是我无法使用已接受的解决方案。该解决方案是完美的,但不适用于我的情况。
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
/*Ajax logic*/
}
});
此逻辑要求用户滚动到页面末尾以满足条件,然后进行呼叫。这以前曾经起作用,但现在我不得不通过添加一些比窗口高度大得多的内容来增加页脚。用户不再向下滚动到此逻辑即可工作。
该解决方案增加了偏移量,但问题是,当用户上下滚动一点(使用上述问题的解决方案)时,他会进行多个不需要的ajax调用。
我正在绞尽脑汁,但我希望收到你们的来信! 谢谢
答案 0 :(得分:0)
我自己找到了一个答案,并将其写下来给其他遇到类似问题的人。
从逻辑上讲,我为$(window).scrollTop()设置了上限,以使其在到达页脚时不会增加。减去页脚偏移,并添加了另一个条件,其差为1 px。代码是这样的:
$(window).scroll(function() {
var scrollpos = $(window).scrollTop();
var docHgt = $(document).height();
var wndwHgt = $(window).height();
var footerH = $("#footer").height();
/* Capping to a Ceiling */
if(scrollpos > (docHgt - wndwHgt-footerH))
scrollpos = (docHgt - wndwHgt-footerH);
if (( scrollpos >= (docHgt - wndwHgt-footerH))&& (scrollpos <(docHgt - wndwHgt - footerH + 1))) {
/*Ajax logic*/
}
});
这不是最好的方法,而是一种折衷方案!