getBoundingClientRect( IE5 以上都支持 )用法詳解

getBoundingClientRect用于獲取某個元素相對于視窗的位置集合。集合中有top, right, bottom, left等屬性。

262132219001037.jpg

Jquery訪問:

$('#m-price')[0].getBoundingClientRect()

Js訪問:

document.getElementById('m-price-calculate').getBoundingClientRect()

返回元素:

{
    bottom: 553,    //元素下邊到視窗上邊的距離;
    height: 553,    //元素高度,ie9以上支持
    left: 840,      //元素左邊到視窗左邊的距離;
    right: 1190,    //元素右邊到視窗左邊的距離;
    top: 0,         //元素上邊到視窗上邊的距離
    width: 350      //元素寬度,ie9以上支持
}

對于height,width IE6 ~ IE8 下兼容寫法:

var rectWidth = rectObject.right - rectObject.left,
    rectHeight = rectObject.bottom - rectObject.top;

IE兼容性問題:在ie7及ie7以下left和top會多出兩個像素。
原因:正常瀏覽器html元素坐標(biāo)會從(0,0)開始算起,而IE7及IE7以下的html元素坐標(biāo)會從(2,2)開始算起,IE8已修復(fù)這個bug

兼容寫法:

var rectLeft = rectObject.left - document.documentElement.clientLeft || 2,
    rectRight = rectObject.right - document.documentElement.clientLeft || 2,
    rectBottom = rectObject.bottom - document.documentElement.clientTop || 2,
    rectTop = rectObject.top - document.documentElement.clientTop || 2;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 14,124評論 1 92
  • 一:在制作一個Web應(yīng)用或Web站點的過程中,你是如何考慮他的UI、安全性、高性能、SEO、可維護性以及技術(shù)因素的...
    Arno_z閱讀 1,361評論 0 1
  • byzhangxinxufromhttp://www.zhangxinxu.com本文地址:http://www....
    麻辣小隔壁閱讀 1,294評論 0 2
  • 請參看我github中的wiki,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon閱讀 7,761評論 2 19
  • 孩子前些天總動不動說:媽媽,我想要別墅!我當(dāng)時想脫口而出的是:連房子都買不起,還買什么別墅?可我知道這樣太...
    CiciCherry閱讀 153評論 0 0

友情鏈接更多精彩內(nèi)容