110

我确定我正在犯一个简单的错误,但我只是在发出警报$(window).height(),它返回的值与$(document).height().

我在一个 13 英寸的 MBA 上,我的浏览器窗口高度在 780 像素 - 820 像素(大约)之间最大化时,但每次它返回的窗口高度与文档高度相同。在我正在处理的网站上的每种情况下超过 1000 像素。

这里发生了什么?

alert($(window).height());
alert($(document).height()); 
4

5 回答 5

253

如果没有doctype标签,Chrome 会为两个调用报告相同的值。

添加严格的文档类型 like<!DOCTYPE html>会导致值按宣传的方式工作。

doctype标签必须是文档中的第一件事例如,你不能在它之前有任何文本,即使它没有渲染任何东西。

于 2012-10-15T18:48:57.963 回答
25

我有同样的问题,并使用它解决了它。

var w = window.innerWidth;
var h = window.innerHeight;
于 2015-09-25T17:54:26.020 回答
2

这是一个问题和答案: screen.availHeight 和 window.height() 之间的区别

也有图片,所以你可以实际看到差异。希望这可以帮助。

基本上,$(window).height()为您提供浏览器窗口(视口)内的最大高度,并$(document).height()为您提供浏览器内文档的高度。大多数情况下,它们将完全相同,即使使用滚动条也是如此。

于 2012-08-24T05:04:11.060 回答
1

我认为您的文档在窗口中必须有足够的空间来显示其内容。这意味着无需向下滚动即可查看文档的更多部分。在这种情况下,文档高度将等于窗口高度。

于 2012-08-24T04:47:35.650 回答
0

如果我们在我们的网页上使用 Doctype,它确实有效,jquery(window) 将返回视口高度,否则它将返回完整的文档高度。

在您的网页顶部定义以下标签: <!DOCTYPE html>

于 2017-09-14T05:48:58.457 回答