jquery $(window).height() 正在返回文档高度

Posted

技术标签:

【中文标题】jquery $(window).height() 正在返回文档高度【英文标题】:jquery $(window).height() is returning the document height 【发布时间】:2012-08-19 15:39:29 【问题描述】:

我确定我犯了一个简单的错误,但我只是提醒$(window).height() 它返回与$(document).height() 相同的值。

我在 13" MBA 上,我的浏览器窗口高度在 780 像素到 820 像素之间(大约)最大化,但每次它返回的窗口高度与文档高度相同。在网站上的所有情况下,我都在工作超过1000px。

这是怎么回事?

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

【问题讨论】:

你在用什么浏览器? 这个问题从 jquery-1.8.0 开始出现,旧版本的 jquery 正确地做到了这一点(即使没有设置 DOCTYPE) 【参考方案1】:

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

【讨论】:

文档在每一页都延伸到窗口底部以下。【参考方案2】:

这是一个问题和答案:Difference between screen.availHeight and window.height()

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

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

【讨论】:

【参考方案3】:

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

添加像<!DOCTYPE html> 这样的严格文档类型会使值按宣传的那样工作。

doctype 标记必须是文档中的非常。例如,你不能在它前面有任何文本,即使它没有渲染任何东西。

【讨论】:

FireFox 也会执行此报告,除非您使用严格的文档类型,例如 另外,不正确的文档类型会使 twitter bootstrap scrollspy 行为怪异,原因与 $(window).height() 返回文档高度相同。 在我的例子中,我的代码中有一个Response.Write 在一个 ASP 网站上,它在任何 HTML 之前输出一个 1。所以我的文档类型是正确的,但从技术上讲,它不是页面上的第一件事。 我有同样的问题,但 doctype 声明正确:( "doctype 标签必须是文档中的第一部分。例如,您不能在它之前有任何 php 代码,即使它不呈现任何内容。“这怎么可能?浏览器不知道服务器正在运行什么,它只接收带有 HTML 标记的文本文件。如果您运行的是 IIS 而不是 Apache 怎么办?浏览器并不关心服务器在做什么。【参考方案4】:

我遇到了同样的问题,用这个解决了。

var w = window.innerWidth;
var h = window.innerHeight;

【讨论】:

太奇怪了,我也在使用正确的文档类型。你的内在高度解决了我的问题!谢谢 同样的问题 - 有有效的文档类型和所有。稍微跨平台:var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; 真正解决了问题(是的,我有一个文档类型 - 每个页面上的第一件事)【参考方案5】:

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

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

【讨论】:

在你的网页顶部使用这个标签:

以上是关于jquery $(window).height() 正在返回文档高度的主要内容,如果未能解决你的问题,请参考以下文章

jQuery中的$(document).height()和$(window).height()

Jquery $(window).height() 函数不返回实际窗口高度

window + document + height

jquery $(window).width() 和 $(window).height() 在未调整视口大小时返回不同的值

jquery和javascript的height总结

(document).height()与$(window).height()的区别,以及如何判断滚动条是否触顶或触底