x###1. 三大家族(offset/scroll/client)
事件對象/event (事件被觸動時谣光,鼠標和鍵盤的狀態(tài))(通過屬性控制)
2. Offset家族簡介
offset這個單詞本身是--偏移欠动,補償衷旅,位移的意思者填。
js中有一套方便的獲取元素尺寸的辦法就是offset家族;
offsetWidth和offsetHight 以及offsetLeft和offsetTop以及offsetParent
共同組成了offset家族正勒。
2.1 offsetWidth和offsetHight (檢測盒子自身寬高+padding+border)
這兩個屬性腺兴,他們綁定在了所有的節(jié)點元素上。獲取之后牌废,只要調(diào)用這兩個屬性咽白,我們就能夠獲取元素節(jié)點的寬和高。
offsetWidth =width+padding+border鸟缕;
offsetHeight= Height+padding+border晶框;```
####2.2 offsetLeft和offsetTop (檢測距離父盒子有定位的左/上面的距離)
返回距離上級盒子(帶有定位)左邊的位置
如果父級都沒有定位則以body為準
offsetLeft 從父親的padding 開始算,父親的border 不算。
在父盒子有定位的情況下懂从,offsetLeft == style.left(去掉px)
####2.3 offsetParent (檢測父系盒子中帶有定位的父盒子節(jié)點)
1授段、返回改對象的父級 (帶有定位)
如果當前元素的父級元素沒有進行CSS定位 (position為absolute或 relative,fixed)番甩, offsetParent為body侵贵。
2、如果當前元素的父級元素中有CSS定位 (position為absolute或 relative缘薛,fixed)窍育, offsetParent取最近的那個父級元素卡睦。
###3. offsetLeft和style.left區(qū)別
一、最大區(qū)別在于offsetLeft可以返回沒有定位盒子的距離左側(cè)的位置漱抓。 而 style.left不可以
二表锻、offsetTop 返回的是數(shù)字,而style.top 返回的是字符串乞娄,除了數(shù)字外還帶有單位:px瞬逊。
三、offsetTop 只讀补胚,而style.top 可讀寫码耐。(只讀是獲取值,可寫是賦值)
四溶其、如果沒有給HTML 元素指定過 top 樣式骚腥,則style.top 返回的是空字符串。