screen.availHeight 和 window.height() 的区别

IT技术 javascript jquery window document
2021-02-23 23:11:33

我正在我的浏览器 (Firefox) 上执行以下 Javascript。

  1. console.debug("屏幕高度 = "+ screen.availHeight ); //输出770

  2. console.debug("窗口高度="+ $(window).height() ); //输出210(我也在使用 jQuery)

两者有什么区别?是 770 像素和 210 毫米?

同样,当我写$(document).height()和 时$(window).height(),也有区别。是什么原因?

2个回答

window.outerHeight

它是窗口在屏幕上的高度,它包括页面和所有可见的浏览器栏(位置、状态、书签、窗口标题、边框等)。

一样jQuery的$(window).outerHeight()

window.innerHeight 或者 $(window).height()

它是显示网站的视口的高度,只是内容,没有浏览器的栏。

document.body.clientHeight 或者 $(document).height()

它是您的文档在视口中显示的高度。如果它高于$(window).height()你得到滚动条来滚动文档。

screen.availHeight

这是浏览器窗口最大化时的高度,包括浏览器的栏。所以当窗口最大化时,screen.availHeight === window.outerHeight

screen.height

它只是匹配屏幕的分辨率。所以在 1920×1080 的屏幕上,screen.height将是1080.

screen.availHeight等于 [ screen.height+ 操作系统的栏],例如 Windows 上的任务栏、OS X 上的停靠栏和菜单,或者如果您使用的是 Linux,则固定在屏幕顶部或底部的任何内容。

$(window).height() 仅在 webkit 上是准确的。在 IE 和 Firefox 上,不考虑水平滚动条,因此您的结果因滚动条的高度而异。
2021-04-19 23:11:33
@jigfox:它确实有帮助。但是当我们重新调整窗口大小然后刷新窗口时如何计算高度,screen.height只会给你不包括滚动高度的内部高度。我们如何计算滚动高度?其中 asscreen.availHeight为您提供滚动高度,但它包括工具栏菜单所有这些内容。
2021-04-20 23:11:33
由于透明度的原因,Windows 与 Aero 似乎认为 full screen.height 与 screen.availHeight 相同,我将如何在 Windows Aero 透明任务栏系统上获取 screen.availHeight?
2021-04-20 23:11:33
我添加了一个图像来显示差异,我希望这会有所帮助。
2021-04-27 23:11:33
我同意你的回答,但什么是 $(window).height() 以及为什么这个值与 screen.availHeight 不同。我已经在谷歌上搜索了很多,但仍然没有令人满意的答案。此外,我没有看到可以说明实际概念的可用文档。顺便感谢您的超级快速响应。再次非常感谢。
2021-05-12 23:11:33

更正@jigfox 的回答中所述的一件事:

https://www.w3schools.com/jsref/prop_screen_availheight.asp#:~:text=The%20availHeight%20property%20returns%20the, )%2C%20use%20the%20availWidth%20property。

availHeight属性返回用户的屏幕的高度,以像素为单位,减去界面功能,如Windows任务栏上。

提示:要获取屏幕的高度(不包括 Windows 任务栏),请使用availHeight 属性。