相关疑难解决方法(0)

$(window).width()与媒体查询不同

我在一个项目上使用Twitter Bootstrap.除了默认的bootstrap样式,我还添加了一些自己的样式

//My styles
@media (max-width: 767px)
{
    //CSS here
}
Run Code Online (Sandbox Code Playgroud)

当视口的宽度小于767px时,我也使用jQuery来更改页面上某些元素的顺序.

$(document).load($(window).bind("resize", checkPosition));

function checkPosition()
{
    if($(window).width() < 767)
    {
        $("#body-container .main-content").remove().insertBefore($("#body-container .left-sidebar"));
    } else {
        $("#body-container .main-content").remove().insertAfter($("#body-container .left-sidebar"));
    }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是$(window).width()由CSS计算的宽度和CSS计算的宽度似乎不相同.当$(window).width()返回767时,css计算出视口宽度为751,因此似乎有16px不同.

有谁知道造成这种情况的原因以及如何解决问题?人们已经建议不考虑滚动条的宽度,使用$(window).innerWidth() < 751是要走的路.但理想情况下,我想找到一个计算滚动条宽度的解决方案,这与我的媒体查询一致(例如,两个条件都在检查值767).因为当然并非所有浏览器的滚动条宽度都是16px?

css jquery media-queries twitter-bootstrap

180
推荐指数
6
解决办法
21万
查看次数

如何在没有(减号)滚动条的情况下获得屏幕宽度?

我有一个元素,需要它的宽度没有(!)垂直滚动条.

Firebug告诉我身体宽度是1280px.

这些都可以在Firefox中正常工作:

console.log($('.element').outerWidth() );
console.log($('.element').outerWidth(true) );

$detour = $('.child-of-element').offsetParent();
console.log( $detour.innerWidth() );
Run Code Online (Sandbox Code Playgroud)

他们都返回1263px,这是我正在寻找的价值.

但是所有其他浏览器都给我1280px.

是否有跨浏览器的方式来获得没有(!)垂直滚动条的全屏宽度?

jquery cross-browser width

93
推荐指数
5
解决办法
16万
查看次数

获取浏览器窗口宽度,包括滚动条

我试图获得浏览器窗口宽度$(window).width();.在IE 10上,它确实返回完整的浏览器宽度,包括滚动条.但是,在Firefox和Chrome上,两者都返回值而没有滚动条.

如何将浏览器宽度与滚动条一起包含?因为我需要检测到的宽度与CSS完全相同.

谢谢.

javascript firefox jquery google-chrome

24
推荐指数
4
解决办法
2万
查看次数