关于 jquery:$(window).height() vs $(document).height

$(window).height() vs $(document).height

我在使用

时遇到了错误高度的问题

1
$(window).height();

并得到了类似的问题
这里

就我而言,当我尝试

1
$(document).height();

它似乎返回了正确的结果

窗口高度返回 320

而文档高度返回 3552!

我也发现了这个问题

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

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

编辑:

enter


嗯,你似乎把他们俩都误认为他们做了什么。

$(window).height() 为您提供(浏览器)窗口(即视口)高度的无单位像素值。对于 Web 浏览器,此处的视口是画布的可见部分(通常小于正在呈现的文档)。

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

希望能把事情弄清楚一点。


这解决了我

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

AFAIK $(window).height(); 返回窗口的高度,$(document).height(); 返回文档的高度


jQuery $(window).height();$(window).width(); 只有当您的 html 页面文档类型为 html

时才能完美运行

1
2
3
<!DOCTYPE html>
<html lang="en">
...


$(document).height:如果您的设备 height 更大。您的页面没有任何滚动条;

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

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


你需要知道文档和窗口是什么意思。

  • window 对象表示浏览器中打开的窗口。单击此处
  • Document 对象是文档树的根。单击此处