0

因此,理论上,当滚动条位于页面底部上方 500 像素时,我就有了这个函数。

$(document).ready(function() {
    var timeout = '';
    $(window).scroll(function (e) { 
        var intBottomMargin = 500; 
        clearTimeout(timeout);
        if ($(window).scrollTop() >= $(document).height() - $(window).height() - intBottomMargin) {
          timeout = setTimeout(function(){ 
                $("#next-paginav")[0].click(); 
          }, 300);
        }
    });
});

问题是,我的 html 需要 height:100% 所以文档高度和窗口高度将是“相同的”,对吗?因此该功能不起作用,除了在 OS X 上的 chrome/safari 中,您在底部会出现一点反弹,并且 window.scrolltop 暂时超过文档高度。

如何使这个函数在我的 html 为 100% 高度的情况下工作?

$(document).ready(function() {
    var timeout = '';
    $(window).scroll(function (e) { 
        var intBottomMargin = 500; 
        clearTimeout(timeout);
        if ($(window).scrollTop() >= $('body').height() - $(window).height() - intBottomMargin) {
          timeout = setTimeout(function(){ 
                $("#next-paginav")[0].click(); 
          }, 300);
        }
    });
});

不工作。

$(document).ready(function() {
    var timeout = '';
    $(window).scroll(function (e) { 
        var intBottomMargin = 500; 
        clearTimeout(timeout);
        if ($(window).scrollTop() >= $('body').height() - intBottomMargin) {

          timeout = setTimeout(function(){ 
                $("#next-paginav")[0].click(); 
          }, 300);
        }
    });
});

也不管用,什么都没有发生。

如何使这个函数在我的 html 和 body 为 100% 高度的情况下工作?

4

3 回答 3

0

使用$('body').height()而不是$(document).height().

于 2013-04-01T22:20:22.213 回答
0

我遇到了同样的问题,并找到了可能的解决方案。您可以克隆并在屏幕外加载正文的内容,计算高度,然后删除所述克隆。

function getDocumentHeight() {
    var $temp = $("<div>")
        .css("position","absolute")
        .css("left","-10000px")
        .append($("body").html());

    $("body").append($temp);
    var h = $temp.height();
    $temp.remove();
    return h;
}

资源

于 2013-08-30T21:03:24.517 回答
0
$(window).scrollTop() >= $('body').height() - intBottomMargin

应该做的伎俩。$(window).height() 在 Firefox 中不会返回与 chrome 中相同的高度。

于 2013-04-01T22:39:15.397 回答