$(window).width() 在正常状态下和在检查元素上的响应状态下的差异
Difference of $(window).width() on normal state and responsive state on inspect element
我想知道为什么在浏览器标准和设备模拟模式下使用 $(window).width()
时会有差异。
当我在宽度为 1024px 的浏览器上使用 $(window).width()
时,我在标准模式下得到了 1007 的值,但是在设备仿真模式下我得到了准确的 1024。
那么这两者之间有什么区别,是否可以检查正常 window 模式和设备仿真模式下的具体宽度?
我现在使用的是 $(window).width()
来检查 window 大小所以除了这个之外还有没有检查实际大小的?
区别在于浏览器的滚动条。在所有浏览器的最新版本 (http://www.textfixer.com/tutorials/browser-scrollbar-width.php) 中,滚动条宽度为 17px,如果将其添加到 1007,则正好为 1024px。
该度量是正确的,因为它指的是 "available" 用于呈现内容的浏览器区域 - 返回浏览器全宽是不正确的。
尝试检查位置,例如,
function checkPosition() {
if (window.matchMedia('(min-width: 1024px)').matches) {
//...
} else {
//...
}
}
或者,您可以使用 modernizr mq 方法,例如,
if (Modernizr.mq('(min-width: 1024px)')) {
//...
} else {
//...
}
我想知道为什么在浏览器标准和设备模拟模式下使用 $(window).width()
时会有差异。
当我在宽度为 1024px 的浏览器上使用 $(window).width()
时,我在标准模式下得到了 1007 的值,但是在设备仿真模式下我得到了准确的 1024。
那么这两者之间有什么区别,是否可以检查正常 window 模式和设备仿真模式下的具体宽度?
我现在使用的是 $(window).width()
来检查 window 大小所以除了这个之外还有没有检查实际大小的?
区别在于浏览器的滚动条。在所有浏览器的最新版本 (http://www.textfixer.com/tutorials/browser-scrollbar-width.php) 中,滚动条宽度为 17px,如果将其添加到 1007,则正好为 1024px。
该度量是正确的,因为它指的是 "available" 用于呈现内容的浏览器区域 - 返回浏览器全宽是不正确的。
尝试检查位置,例如,
function checkPosition() {
if (window.matchMedia('(min-width: 1024px)').matches) {
//...
} else {
//...
}
}
或者,您可以使用 modernizr mq 方法,例如,
if (Modernizr.mq('(min-width: 1024px)')) {
//...
} else {
//...
}