jquery – 如何在没有滚动条的情况下获取浏览器窗口大小

前端之家收集整理的这篇文章主要介绍了jquery – 如何在没有滚动条的情况下获取浏览器窗口大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在没有滚动条宽度和高度的情况下获取浏览器窗口大小?

当我使用这种方法时,我正在使用滚动条的宽度和高度来提出34.

var $windowW = ($(window).width() - 34);
     var $windowH = ($(window).height() - 34);
     alert($windowW + "  " + $windowH); // THe results are width 1440 and 745 height
     $("body").css("width",$windowW);
     $("body").css("height",$windowH);
     $("body").css("border","1px solid green");

解决方法

function getScrollBarDimensions(){
var elm = document.documentElement.offsetHeight ? document.documentElement : document.body,curX = elm.clientWidth,curY = elm.clientHeight,hasScrollX = elm.scrollWidth > curX,hasScrollY = elm.scrollHeight > curY,prev = elm.style.overflow,r = {
    vertical: 0,horizontal: 0
    };


    if( !hasScrollY && !hasScrollX ) {
    return r;
    }

elm.style.overflow = "hidden";

    if( hasScrollY ) {
    r.vertical = elm.clientWidth - curX;
    }

    if( hasScrollX ) {
    r.horizontal = elm.clientHeight - curY;
    }
elm.style.overflow = prev;


return r;
}

运行getScrollBarDimensions();在这个页面上产生:

Object
horizontal: 0
vertical: 17

对我来说,谷歌浏览器,IE7,歌剧和Firefox.

猜你在找的jQuery相关文章