计算窗口宽度,包括滚动条 - CSS Media查询与JS

时间:2013-01-11 18:14:06

标签: javascript jquery css window media-queries

假设我已正确推断出问题,似乎CSS min-screen宽度补偿了滚动条(如预期的那样),而JS似乎没有做同样的事情:(

我在Mac OSX上使用Firefox。我不确定这是否是特定于浏览器的,但我想知道是否有这个问题的通用解决方案。

我做了JS fiddle to demonstrate the problem。在我的浏览器中,CSS和我的JS计算的宽度之间存在15px的差异。

之前有人遇到过这个吗?

1 个答案:

答案 0 :(得分:1)

我似乎找到了我的问题的答案,但我不确定这是否是计算正确宽度的最有效方法。

我们的想法是提供body元素overflow:hidden;,然后运行函数来计算窗口宽度,然后删除overflow:hidden;样式。

像这样:

function minScreen480(){

    document.body.style.overflow = "hidden";
        if ($(window).width() >= 480) {
            // Do stuff
        }else{
            // Do stuff
        }
    document.body.style.overflow = "";
}

$(window).resize(function(){
    minScreen480();
}).trigger('resize');

似乎工作。这可以写得更好吗?