使用.outerHeight()或.height()计算元素的高度并不考虑滚动条?

时间:2014-04-01 04:12:29

标签: javascript jquery

我创建了一个响应式网页,我试图在jQuery中使用.outerHeight()方法找到元素的高度,如下所示:

(仅举例;不是我如何使用它。)

jQuery(document).ready(function($){

    // Identify height of div#main
    var element_h = $('.home #main').outerHeight(true);

    // Apply same height to div#primary
    $('.home #primary').attr('style', 'height:'+element_h+'px;');

});

问题是,当调整网页大小(当然,重新加载)时,计算出的高度小于元素的实际高度。

考虑到网页是响应式的,当调整浏览器大小时,元素的高度会增加。 jQuery的 .outerHeight() .height() 方法似乎正确计算高度,直到滚动条出现 - 即使整个元素仍在图。

知道为什么会这样吗?我可能做错了什么?

2 个答案:

答案 0 :(得分:0)

最好的办法是检测浏览器滚动条的大小,并将其作为检测的全局变量。请参阅this answer了解如何执行此操作。

然后,您可以将结果分配给类似

的内容
$(window).data('scrollbarSize');

答案 1 :(得分:0)