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

前端之家收集整理的这篇文章主要介绍了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 content="user-scalable=no,initial-scale=1.0,maximum-scale=1.0,width=device-width" name="viewport"/>

我想这是由于滚动条(15像素)。我怎么能做得更好?

对不起,如果这是一个重复的问题,但我不能找到我的错误在哪里。

解决方法

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

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

代码是从http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/

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相关文章