$(window).height()与$(document).height的区别

64

我在获取高度时遇到了问题

$(window).height();

我也遇到了类似的问题,可以在这里查看

对于我的情况,当我尝试使用

$(document).height();

看起来返回了正确的结果

window高度返回320

而文档高度返回3552!

我也发现了这个问题

但在我的情况下,窗口已经完全加载,因为我在几个ajax操作之后调用了高度函数

那么知道当前窗口的高度的最佳方法是什么?

编辑:

enter image description here enter image description here


3
那是两件完全不同的事情。你是想获取窗口、文档、视口的高度,还是其他什么? - Brad
$(window).height(); 是获取窗口高度的正确方法。你认为它有什么问题吗? - Felix Kling
1
@Brad- 实际上我想要我的窗口覆盖的完整高度,包括滚动区域,实际上我想使用这些数字来计算并设置我的弹出窗口的底部。 - Pawan Nogariya
1
所以你想让你的弹出窗口离屏幕远一点? - PeeHaa
我的问题已经解决了,通过调整外部和内部元素的位置来实现 :-) 感谢您的所有帮助 :) - Pawan Nogariya
显示剩余9条评论
6个回答

129

看起来您似乎把它们混淆了。

$(window).height() 返回一个无单位像素值,表示浏览器窗口或视口的高度。就网络浏览器而言,此处的视口是画布的可见部分(通常小于正在呈现的文档)。

$(document).height() 返回渲染文档的高度的无单位的像素值。但是,如果实际文档正文的高度小于视口高度,则将返回视口高度。

希望这能稍微澄清一些事情。


2
如果想要获取文档的高度,特别是当它小于视口时(例如为了使 iframe 告诉其父级其应该有多大),该怎么办?$("html").height() 在各种浏览器中都可靠吗? - jacobq
1
我个人从不使用 $(html).height(),因此建议使用 $(document).height() 来获取文档的高度。 - Sayan
4
问题在于如果窗口高度大于文档高度,那么 $(document).height() 返回的是窗口/视口高度,而不是文档高度。在我的使用情况中,iframe 可能会变高或变矮,需要能够告诉其父级应该有多高。如果它高了然后变矮了,它需要能够测量小于其视口高度的高度。 - jacobq
“无单位像素值”……什么?“像素”恰好是一个单位! - Noldorin
1
@Noldorin 我原本想表达的(不成功?)是这两个工具返回的值仅为数字,不包含以像素为单位的单位。有趣的是,像素并不是真正意义上的单位 - Sayan
显示剩余2条评论

10

这个解决了我的问题

var width = window.innerWidth;
var height = window.innerHeight;

4
据我所知,$(window).height(); 返回你的窗口的高度,而 $(document).height(); 返回你的文档的高度。

8
“tautology”指的是“重言式”。$(window).height()是计算机JavaScript语言中“返回窗口高度”的表达方式。你刚刚用人类语言说了这行代码的意思。不过我没给它点踩,因为我并不相信。 - Saeed Neamati
他们的名称已经写在函数中,你只是将它们命名相同。但是最好解释一下什么是窗口和文档。 - Akin Zeman

3

当您的HTML页面文档类型为HTML时,jQuery $(window).height();$(window).width(); 才能完美工作。

<!DOCTYPE html>
<html lang="en">
...

在 Firefox 上解决了我的问题 - 至少在 88 版本中,如果没有设置 <!DOCTYPE html>,$(window).height() 返回的是 body 的高度。 - Błażej Czapp
谢谢!在我的情况下,页面顶部输出了内联CSS样式,位于<!doctype html>之前,我猜这让Chrome忽略了文档类型声明。 - Gavin

0

$(document).height: 如果您的设备高度较大,而您的页面没有任何滚动,则返回的不会有任何滚动条。

$(document).height: 假设您没有滚动,并返回此 height;

$(window).height: 返回您在设备上的页面 height


0

你需要知道文档和窗口的含义。

  1. 窗口对象表示浏览器中打开的窗口。点击这里
  2. 文档对象是文档树的根节点。点击这里

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接