關于getBoundingClientRect

getBoundingClientRect()

這個方法返回一個矩形對象,包含四個屬性:left、top、right和bottom。分別表示元素各邊與頁面上邊和左邊的距離。

var box=document.getElementById('box'); // 獲取元素

box.getBoundingClientRect().top; // 元素上邊距離頁面上邊的距離

box.getBoundingClientRect().right; // 元素右邊距離頁面左邊的距離

box.getBoundingClientRect().bottom; // 元素下邊距離頁面上邊的距離

box.getBoundingClientRect().left; // 元素左邊距離頁面左邊的距離

圖例

注意:IE、Firefox3+、Opera9.5、Chrome、Safari支持,在IE中,默認坐標從(2,2)開始計算,導致最終距離比其他瀏覽器多出兩個像素,我們需要做個兼容。

document.documentElement.clientTop; // 非IE為0,IE為2

document.documentElement.clientLeft; // 非IE為0,IE為2

functiongGetRect (element) {

var rect = element.getBoundingClientRect();

var top = document.documentElement.clientTop;

var left= document.documentElement.clientLeft;

return{

    top    :   rect.top - top,

    bottom :   rect.bottom - top,

    left   :   rect.left - left,

    right  :   rect.right - left

}

}

分別加上外邊據(jù)、內邊距、邊框和滾動條,用于測試所有瀏覽器是否一致。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容