欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單談?wù)刼ffsetleft、offsetTop和offsetParent

 更新時間:2020年12月04日 10:23:33   作者:expworld  
這篇文章主要給大家介紹了offsetleft、offsetTop和offsetParent的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

ele.offsetParent返回的是ele元素最近的并且是定位過(relative,absolute)的父元素,如果沒有父元素或者是父元素中沒有一個是定位過的,返回值就是body元素

ele.offsetLeft和ele.offsetTop取值問題,分多種情況:

  • 如果ele是body的直接子元素,返回值則是ele距離body左側(cè)或頂部的距離
  • 如果ele不是body的直接子元素,在父元素進行定位(relative,absolute)的情況下,各瀏覽器返回值都是ele距離父元素左側(cè)或者是
    頂部的距離(唯一的區(qū)別就是chrome沒有把邊框計算進去,IE,firefox都計算進去了)
  • 如果ele不是body的直接子元素,父元素也沒有進行定位的情況下,各瀏覽器返回的直接是ele元素距body的距離

從上面可以看出offsetLeft、offsetTop返回的值就是ele到offsetParent的距離,這個offsetParent是什么元素要看ele的父元素有沒有進行定位(relative、absolute)

應(yīng)用:

在要獲取元素距離網(wǎng)頁左側(cè)距離的時候就要考慮offsetParent的定位問題,不能簡單的用ele.offsetLeft/Top獲取,必須通過循環(huán)累加的方式才能獲得正確值(chrome的結(jié)果和IE、Firefox不一樣,相差1px,原因是chrome沒有把邊框計算進去),下面是代碼

(Tips:代碼中的this.left、this.top可以用arguments.callee代替,但根據(jù)ECMAScript 5規(guī)范不建議使用,strict model下已經(jīng)被禁用,因為arguments是一個比較龐大的對象,非常耗資源)

var getOffset = {
 left:function(obj){
  return obj.offsetLeft + (obj.offsetParent ? this.left(obj.offsetParent) : 0);
 },
 top:function(){
  return obj.offsetTop + (obj.offsetParent ? this.top(obj.offsetParent) : 0);
 }
}

到此這篇關(guān)于offsetleft、offsetTop和offsetParent的文章就介紹到這了,更多相關(guān)offsetleft、offsetTop和offsetParent內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論