获取浏览器窗口宽度,包括滚动条

use*_*781 24 javascript firefox jquery google-chrome

我试图获得浏览器窗口宽度$(window).width();.在IE 10上,它确实返回完整的浏览器宽度,包括滚动条.但是,在Firefox和Chrome上,两者都返回值而没有滚动条.

如何将浏览器宽度与滚动条一起包含?因为我需要检测到的宽度与CSS完全相同.

谢谢.

Jam*_*mas 57

第一个答案很接近,但经过进一步检查,它有点复杂.的body.clientWidth是不包括滚动条的宽度.的window.outerWidth是包括滚动条和其他窗口元素,如窗口边界的宽度.它window.innerWidth是窗口的实际宽度,包括滚动条,但不包括窗口边框.

在此输入图像描述

  • 即使是三年后,这也应该是正确的标记答案。 (5认同)

inf*_*del 24

这将获得完整Window的宽度:

 window.outerWidth
Run Code Online (Sandbox Code Playgroud)

注意: jQuery outerWidth()不起作用$(window)

  • 如果您在网页右侧有javascript检查器窗口,那么`outerWidth`将包含检查器的宽度 - 当您调整页面本身时,`outerWidth`甚至不会更改.我认为`outerWidth`的唯一目的应该是浏览器窗口大小的谷歌分析类型记录.无论您是否打开检查器窗口,它都无法用于布局目的.您可能希望`innerWidth`等同于'视口宽度'以进行响应式设计 (7认同)

min*_*are 16

window.innerWidth 在响应式设计需要时似乎是正确的答案


小智 8

window.innerWidth将给出 HTML和滚动条的宽度。该值是在 CSS 中使用媒体查询时用于设备宽度断点的值。本质上,window.innerWidth等于计算的 CSS 单位100vw。但是,window.outerWidth将为您提供整个窗口的宽度。

例如,如果您在浏览器window.outerWidth打开 Chrome 的开发工具,则为网页的宽度 + 滚动条 + Chrome 的开发工具检查器。whilewindow.innerWidth将返回网页+滚动条的宽度。