2011-11-22 38 views
2

如何獲得沒有滾動條的寬度和高度的瀏覽器窗口大小?如何在沒有滾動條的情況下獲得瀏覽器窗口大小

當我用這個方法,我用滾動條的寬度和高度玩拿出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"); 
+0

爲什麼不減少滾動條的寬度就可以得到什麼?這似乎很好。 – nmagerko

+0

謝謝,但有沒有辦法獲得滾動條的大小? –

+0

嘿! - 你已經問過這兩次了! http://stackoverflow.com/questions/8220450/how-to-put-a-border-around-the-browser-contetn-viewing-area-jquery –

回答

3
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,歌劇和火狐。

+0

感謝Esailija,這看起來像JavaScript,我怎麼得到垂直和水平使用此功能的返回值? –

+0

@YetimworkBeyene,'var dimensions = getScrollBarDimensions();''alert(dimensions.horizo​​ntal +「\ n」+ dimensions.vertical);' – Esailija

+0

@Esailija如果我沒有弄錯,這會得到文檔的尺寸而不是窗口。 – Lior

相關問題