18

当页面大于屏幕时,我无法在 javascript 中获取页面的高度。

我认为这会让我得到正确的高度:

$(document).height();

但这只会获得屏幕的高度,与:

$('body').height();

如同:

document.offsetHeight;

由于某种原因,所有这些示例仅返回屏幕的高度。有人可以帮忙吗?

4

5 回答 5

22

使用 jQuery(您确实指定了),$(document).height()将准确返回您所要求的内容。

澄清该height()方法的用法:

$('.someElement').height(); // returns the calculated pixel height of the element(s)
$(window).height();         // returns height of browser viewport
$(document).height();       // returns height of HTML document

我怀疑,如果$(document).height()它不适合你,那就有问题了。你可能:

  1. 叫它太早了。就像,在 DOM 准备好之前
  2. 有一些未清除的浮动不会导致某些块级元素扩展到它们的实际高度。从而搞乱了高度计算。
  3. 绝对定位关键的东西。绝对定位的元素对其父元素的高度计算没有贡献。
于 2009-07-18T14:43:45.703 回答
0

如果你喜欢使用 jQuery,那么获取 body 或 html 高度呢?像:

var winHeight = $('body').height();
于 2013-01-26T00:07:03.107 回答
0

我一直在寻找这个并降落在这里。如果没有 Jquery,你也可以使用普通的 JS 来获得它。以下作品:

console.log(document.body.clientHeight,document.body.scrollHeight,document.body.offsetHeight)

请注意以下链接以阐明使用哪个: 分别了解 offsetWidth、clientWidth、scrollWidth 和 -Height

于 2017-06-02T11:30:13.263 回答
-1

我认为您需要添加window.pageYOffset(页面滚动的数量,以像素为单位)。

http://www.quirksmode.org/dom/w3c_cssom.html

于 2009-07-18T14:28:08.147 回答
-1

不确定JQuery。但是此链接可能会帮助您了解各种属性以及它们在不同浏览器中的不同模式下的行为方式。

http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html

于 2009-07-18T14:32:41.917 回答