1. 程式人生 > >javascript 獲取滾動條高度+常用js頁面寬度與高度

javascript 獲取滾動條高度+常用js頁面寬度與高度

/********************
 * 取視窗滾動條高度 
 ******************/
function getScrollTop()
{
    var scrollTop=0;
    if(document.documentElement&&document.documentElement.scrollTop)
    {
        scrollTop=document.documentElement.scrollTop;
    }
    else if(document.body)
    {
        scrollTop=document.body.scrollTop;
    }
    return scrollTop;
}


/********************
 * 取視窗可視範圍的高度 
 *******************/
function getClientHeight()
{
    var clientHeight=0;
    if(document.body.clientHeight&&document.documentElement.clientHeight)
    {
        var clientHeight = (document.body.clientHeight<document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight;        
    }
    else
    {
        var clientHeight = (document.body.clientHeight>document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight;    
    }
    return clientHeight;
}

/********************
 * 取文件內容實際高度 
 *******************/
function getScrollHeight()
{
    return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight);
}

////////////////////////////////////////////////////

在IE中:
document.body.clientWidth ==> BODY物件寬度
document.body.clientHeight ==> BODY物件高度
document.documentElement.clientWidth ==> 可見區域寬度
document.documentElement.clientHeight ==> 可見區域高度
在FireFox中:
document.body.clientWidth ==> BODY物件寬度
document.body.clientHeight ==> BODY物件高度
document.documentElement.clientWidth ==> 可見區域寬度
document.documentElement.clientHeight ==> 可見區域高度
?
在Opera中: 
document.body.clientWidth ==> 可見區域寬度
document.body.clientHeight ==> 可見區域高度
document.documentElement.clientWidth ==> 頁面物件寬度(即BODY物件寬度加上Margin寬)
document.documentElement.clientHeight ==> 頁面物件高度(即BODY物件高度加上Margin高)
而如果沒有定義W3C的標準,則
IE為:
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0
FireFox為:
document.documentElement.clientWidth ==> 頁面物件寬度(即BODY物件寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面物件高度(即BODY物件高度加上Margin高)
Opera為:
document.documentElement.clientWidth ==> 頁面物件寬度(即BODY物件寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面物件高度(即BODY物件高度加上Margin高)
真是一件麻煩事情,其實就開發來看,寧可少一些物件和方法,不使用最新的標準要方便許多啊。

//////////////////////////////////////////////////////////////////////////////////////

網頁可見區域寬:
document.body.clientWidth

網頁可見區域高:
document.body.clientHeight 

網頁可見區域寬:
document.body.offsetWidth(包括邊線的寬) 

網頁可見區域高:
document.body.offsetHeight(包括邊線的寬) 

網頁正文全文寬:
document.body.scrollWidth 

網頁正文全文高:
document.body.scrollHeight 

網頁被捲去的高:
document.body.scrollTop 

網頁被捲去的左:
document.body.scrollLeft 

網頁正文部分上:
window.screenTop 

網頁正文部分左:
window.screenLeft 

螢幕解析度的高:
window.screen.height 

螢幕解析度的寬:
window.screen.width 

螢幕可用工作區高度:
window.screen.availHeight 

螢幕可用工作區寬度:
window.screen.availWidth