$(文档).height()和html高度:100%问题

时间:2013-04-01 22:19:12

标签: jquery

所以我有这个函数,当卷轴比页面底部高出500px时会触发该函数。

$(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需要高度: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和身体100%高度一起使用?

3 个答案:

答案 0 :(得分:0)

使用$('body').height()代替$(document).height()

答案 1 :(得分:0)

$(window).scrollTop() >= $('body').height() - intBottomMargin

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

答案 2 :(得分: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;
}

Source