jQuery窗口宽度有时会返回错误的值

use*_*421 11 jquery window width

有时我打电话:

$(window).width();
Run Code Online (Sandbox Code Playgroud)

返回的值是错误的(在除IE之外的所有浏览器上,在IE上它始终是正确的).我用的是这条线:

$('div.container p').text($(window).width());
Run Code Online (Sandbox Code Playgroud)

更改p元素的文本,以便我可以看到在调整窗口大小时返回的值.以下是返回值错误的示例: http://prntscr.com/7biu4y

在右上角,您可以看到Chrome上的实际尺寸.

我注意到,当值错误时,它总是偏离17px.

请注意,返回的值并不总是错误的,因此窗口看起来应该是这样的大多数时间.

救命!

tre*_*vor 29

@Inacio Schweller是对的.

要获得一致的跨浏览器结果,您可以使用非jQuery版本:

window.innerWidth

尝试在浏览器的控制台中输入此内容,无论您使用何种浏览器,都会看到它返回一致的结果.

注意:非jQuery版本window.outerWidth在IE和Chrome中返回相同的结果,但在Firefox中返回稍小的值.


Ina*_*ler 5

这是因为浏览器视口的滚动条。如果您将窗口最小化到足以显示滚动条,视口会说它比您的值小 17 像素。如果窗口已满,则不会出现 17px 的差异。