使用jQuery获取文档的实际高度

时间:2016-07-11 10:39:47

标签: javascript jquery html

我的jQuery插件有问题,我希望在页面结束前以特定的方式显示页脚。为此,我得到实际的底部位置,并将其与整个身体的高度进行比较。

但是有一个问题是jQuery函数height()返回错误的值。例如,我知道该网站的高度为5515px,但函数返回给我一个值:8142px

我在页面上的几个地方使用插件mCustomScrollbar,我认为它可能会导致问题。我无法禁用它,因为页面包含要求它看起来很好的元素。

我的代码:

(function($){
    $.fn.scrollingElements = function(){
        var height = $(window).height();
        var max_height = $(document).height();
        var prev_top = $(window).scrollTop();
        var prev_bottom = top + height;
        $(window).scroll(function(){
            var top = $(window).scrollTop();
            var bottom = top + height;

            console.log(max_height, bottom);

            if(prev_top < height && top > height){
                // console.log('show header', 'show sticky', 'show footer small');
            }
            if(prev_top > height && top < height){
                // console.log('hide header', 'hide sticky', 'hide footer');
            }
            if(prev_top < 2*height && top > 2*height){
                // console.log('show sroll top');
            }
            if(prev_top > 2*height && top < 2*height){
                // console.log('hide scroll top');
            }

            if(prev_bottom < max_height - 100 && bottom > max_height - 100){
                // console.log('show footer large');
            }
            if(prev_bottom > max_height - 100 && bottom < max_height - 100){
                // console.log('show footer small');
            }

            prev_top = top;
            prev_bottom = bottom;

        });
        $(window).resize(function(){
            height = $(window).height();
        });
    }
})(jQuery);

回答Tommy Riordan: 将$(document).height()更改为document.body.clientHeight仍然无法正常工作。尝试使用$('body')。height()具有相同的效果。

1 个答案:

答案 0 :(得分:0)

请使用

  

文件

而不是窗口 例如:

  

$(窗口).resize(函数(){               height = $(document).height();           });