无限滚动逻辑问题

时间:2018-06-22 12:34:40

标签: javascript jquery logic

我面临的问题与该问题完全相同-Need small logic for infinite scroll jquery

唯一的问题是我无法使用已接受的解决方案。该解决方案是完美的,但不适用于我的情况。

$(window).scroll(function() {
    if($(window).scrollTop() + $(window).height() == $(document).height()) {
        /*Ajax logic*/
    }
});

此逻辑要求用户滚动到页面末尾以满足条件,然后进行呼叫。这以前曾经起作用,但现在我不得不通过添加一些比窗口高度大得多的内容来增加页脚。用户不再向下滚动到此逻辑即可工作。

该解决方案增加了偏移量,但问题是,当用户上下滚动一点(使用上述问题的解决方案)时,他会进行多个不需要的ajax调用。

我正在绞尽脑汁,但我希望收到你们的来信! 谢谢

1 个答案:

答案 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*/
            }
});

这不是最好的方法,而是一种折衷方案!