我使用$(document).height()在块上设置height CSS属性。这是Safari 5.1.10(OSX 10.6.8)的解决方法,因为vh单位(视口高度)在此版本上不起作用。

(function() {
    if(!Modernizr.cssvhunit) $("#sidebar").css("height", $(document).height()+"px");
})();


问题是,每次刷新页面时,$(document).height()返回的值都不相同。有时是视口高度,有时是文档高度,有时是两者之间的值...

我使用:Modernizr 2.8.3来检测vh单元支持,jQuery 1.11.0,Lightbox 2.7.1(如果没有它,问题仍然会发生)和Skeleton 2.0.4。

我也尝试了这种解决方法,但没有成功:

function getDocHeight() {
    var D = document;
    return Math.max(
        D.body.scrollHeight, D.documentElement.scrollHeight,
        D.body.offsetHeight, D.documentElement.offsetHeight,
        D.body.clientHeight, D.documentElement.clientHeight
    );
}


我不知道是什么导致这个假定的常数值可变的...

最佳答案

听起来好像您在页面中的图像仍在加载时正在升高高度,因此页面仍在扩展。

在这种情况下,请尝试在$(window).load(fn)事件下获取高度,因为应该在该点加载所有图像。

09-25 16:19