$(window).height() vs $(document).height
我在使用
时遇到了错误高度的问题
并得到了类似的问题
这里
就我而言,当我尝试
它似乎返回了正确的结果
窗口高度返回 320
而文档高度返回 3552!
我也发现了这个问题
但在我的情况下,窗口已经完全加载,因为我在几次 ajax 操作后调用了高度函数
那么知道当前窗口高度的最佳方法是什么?
编辑:
- 这是完全不同的两件事。您是否试图获取窗口、文档、视口的高度,什么?
-
$(window).height(); 是获取窗口高度的正确方法。为什么你认为这是错误的?
-
@Brad-实际上我想要我的窗口覆盖的整个高度,包括滚动区域,实际上我想使用这个数字来计算和设置我的弹出窗口的底部
-
所以你想让你的弹出窗口离开屏幕?
-
@FelixKling - 它返回 320,但我不认为我的窗口大小是 320,因为我正在计算页面上表格的高度之一,而该表格只有 2400 像素!
-
可见内容的大小与整个文档的大小之间存在差异。您可能正在寻找可见部分,因为您真的不希望弹出窗口出现在其他地方。
-
Document height !== window height!正如@JCOC611 所说,窗口高度是您在文档中看到的部分,而文档高度......是不言自明的。
-
@JCOC611 - 实际上,我创建了一个动态表,它可以有任意数量的行,我可以动态添加任意数量的列,在所有这些动态创建的列上单击我会显示一个弹出窗口,所以我想几乎在单击单元格,我昨天实现了这一点,但是设置了弹出窗口顶部,但是左侧弹出窗口有一些问题,所以我现在想设置弹出窗口底部,我想做类似这样的操作 popupBottom = windoHeight - cellTop
-
@FelixKling - 所以 window.height 不包括 scrollRegion?因为我确定我的窗口不仅仅是 320 大小
-
为什么不使用 position:fixed 作为弹出位置?这样,弹出位置不会随滚动位置而变化。
-
给我一点时间,我会尝试发布一张可以帮助我解释我的观点的图片
-
我已经进行了编辑,就像第一张图片一样,我可以选择任意数量的团队,它会为团队添加列,第二张我可以单击任何单元格,然后会出现弹出窗口,你可以看到它是如第二个屏幕所示完美运行。唯一的问题是我使用的是相对位置,这让我的左边错了。这是我愿意转移到设置弹出窗口底部的唯一问题
-
啊!如果我只是获得从窗口顶部设置弹出窗口顶部的方法,我的问题也可以解决,目前如果我使用 position:absolute 它从父元素获取顶部,但我想从窗口的开头,有没有办法?
-
我的问题已经解决了使用外部和内部元素的位置:-) 感谢您的所有帮助:)
嗯,你似乎把他们俩都误认为他们做了什么。
$(window).height() 为您提供(浏览器)窗口(即视口)高度的无单位像素值。对于 Web 浏览器,此处的视口是画布的可见部分(通常小于正在呈现的文档)。
$(document).height() 返回正在呈现的文档高度的无单位像素值。但是,如果实际文档的正文高度小于视口高度,则它将返回视口高度。
希望能把事情弄清楚一点。
-
如果一个人想要获得文档的高度,特别是如果它小于视口(例如,为了让 iframe 告诉它的父级它应该是什么大小)怎么办? $("html").height() 跨浏览器是否可靠?
-
我个人从不使用 $(html).height() ,因此建议使用 $(document).height() 来获取文档的高度。
-
问题是如果窗口高度大于文档高度,则 $(document).height() 返回窗口/视口高度,而不是文档高度。在我的用例中,iframe 可能会变得更高或更短,并且需要能够告诉其父级它应该是什么高度。如果它很高然后变短,它需要能够测量小于其视口的高度。
-
你如何解释 $(window).height() 返回一个像 3300 万像素这样的拥抱值?
-
"无单位像素值"……嗯?"像素"就是一个单位!
-
@Noldorin 我试图表达的意思(不成功?)是两个实用程序返回的值只是数字,不包含以像素为单位的单位。有趣的是,像素并不是真正意义上的单位。
-
啊,我明白你现在的意思了。好吧,即使根据技术定义,像素仍然是一个单位,但那是语义......
这解决了我
1 2
| var width = window.innerWidth;
var height = window.innerHeight; |
AFAIK $(window).height(); 返回窗口的高度,$(document).height(); 返回文档的高度
- 重言式。 $(window).height() 只是用于"返回窗口高度"的计算机 javascript 语言。你刚才用人类语言说了那行代码。我没有投反对票,因为我不相信。
-
它们的名称已经写在函数中,您只需将它们命名为相同。但是,最好解释一下窗口和文档是什么。
jQuery $(window).height(); 或 $(window).width(); 只有当您的 html 页面文档类型为 html
时才能完美运行
1 2 3
| <!DOCTYPE html>
<html lang="en">
... |
-
解决了我在 Firefox 上的问题 - 版本。至少在 88 中,如果未设置 <!DOCTYPE html>,则 $(window).height() 返回正文的高度。
$(document).height:如果您的设备 height 更大。您的页面没有任何滚动条;
$(document).height: 假设您没有滚动并返回此 height;
$(window).height: 在您的设备上返回您的页面 height。
你需要知道文档和窗口是什么意思。
window 对象表示浏览器中打开的窗口。单击此处
Document 对象是文档树的根。单击此处