Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有限卷轴逻辑问题_Javascript_Jquery_Logic - Fatal编程技术网

Javascript 有限卷轴逻辑问题

Javascript 有限卷轴逻辑问题,javascript,jquery,logic,Javascript,Jquery,Logic,我所面对的问题与这项质询完全相同— 唯一的问题是我不能使用公认的解决方案。这个解决方案是完美的,但在我的情况下不起作用 $(window).scroll(function() { if($(window).scrollTop() + $(window).height() == $(document).height()) { /*Ajax logic*/ } }); 此逻辑要求用户滚动到页面末尾以满足条件,然后进行呼叫。这以前是可行的,但现在我不得不通过添加一些比

我所面对的问题与这项质询完全相同—

唯一的问题是我不能使用公认的解决方案。这个解决方案是完美的,但在我的情况下不起作用

$(window).scroll(function() {
    if($(window).scrollTop() + $(window).height() == $(document).height()) {
        /*Ajax logic*/
    }
});
此逻辑要求用户滚动到页面末尾以满足条件,然后进行呼叫。这以前是可行的,但现在我不得不通过添加一些比窗口高度大得多的内容来增加页脚。用户不再向下滚动到该逻辑工作的最末端

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

我正在绞尽脑汁,但我想听听你们的意见!
谢谢

我自己找到了一个答案,并记下给其他有类似问题的人

从逻辑上讲,我将$(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*/
            }
});
$(窗口)。滚动(函数(){
var scrollpos=$(window.scrollTop();
var docHgt=$(文档).height();
var wndwHgt=$(window.height();
var footerH=$(“#footer”).height();
/*封顶*/
如果(滚动位置>(DOCGT-wndwHgt页脚H))
scrollpos=(DOCGT-wndwHgt页脚H);
如果((scrollpos>=(docHgt-wndwHgt页脚))&(scrollpos