此处所有<div>
的总高度为900像素,但jQuery函数将身体高度返回为577像素。 (如果我删除了身体CSS,它正在工作)。
这个问题有解决方案吗?
$j(function() {
alert($j("body").height());
})
html, body {
height:100%;
}
<div style="height:200px">header</div>
<div style="height:500px">content</div>
<div style="height:200px">footer</div>
答案 0 :(得分:38)
只需使用
$(document).height() // - $('body').offset().top
和/或
$(window).height()
而不是$('body').height();
答案 1 :(得分:28)
集
html { height: 100%; }
body { min-height: 100%; }
而不是height: 100%
。
jQuery返回的结果是正确的,因为您已将主体的高度设置为100%,这可能是视口的高度。这三个DIV导致溢出,因为在BODY元素中没有足够的空间。要查看我的意思,请将边框设置为BODY标记并检查边框的结束位置。
答案 2 :(得分:2)
$(文档).height()似乎可以做到这一点并给出总高度,包括只能通过滚动显示的区域。
答案 3 :(得分:0)
我相信返回的身高是可见的高度。如果您需要总页面高度,可以将div标签包含在包含div中并获得其高度。
答案 4 :(得分:0)
我们试图避免使用IE特定的
$window[0].document.body.clientHeight
并发现以下jQuery不会始终如一地产生相同的值,但最终会在我们的页面加载场景中的某些时刻起作用,这对我们有用并保持跨浏览器支持:
$(document).height()