CSS媒体查询和JavaScript窗口宽度不匹配

对于响应式模板,我在CSS中有一个媒体查询:

@media screen and (max-width: 960px) {

body{

/* something */

background:red;

}

}

而且,我在调整大小以记录宽度时做了一个jQuery函数:

$(window).resize(function() {

console.log($(window).width());

console.log($(document).width()); /* same result */

/* something for my js navigation */

}

而且CSS检测和JS结果有所不同,我有这个meta:

<meta content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width" name="viewport"/>

我想这是由于滚动条(15像素)所致。我该如何做得更好?

回答:

您对滚动条是正确的,这是因为CSS使用的是设备宽度,而JS使用的是文档宽度。

您需要做的是在JS代码中测量视口宽度,而不是使用jQuery width函数。

function viewport() {

var e = window, a = 'inner';

if (!('innerWidth' in window )) {

a = 'client';

e = document.documentElement || document.body;

}

return { width : e[ a+'Width' ] , height : e[ a+'Height' ] };

}

以上是 CSS媒体查询和JavaScript窗口宽度不匹配 的全部内容, 来源链接: utcz.com/qa/403431.html

回到顶部