1? offsetHeight和style.height的區(qū)別
style.height是字符串,offsetHeight是數(shù)值
?demo.style.height是用來獲取和設置行內(nèi)樣式的,offsetHeight是只讀屬性
? demo.style.height只能獲取和設置行內(nèi)樣式,如果樣式寫到了其他地方,甚至根本就沒寫,便無法獲取
? 因此,工作中一般用demo.offsetHeight來獲取某元素的真實寬度/高度,用style.height來設置寬度/高度
? ?1.2 offsetHeight的構成
? ? ? offsetHeight = height+padding+border (包括自身高度內(nèi)邊距邊框不包括外邊距)
2 ? offsetLeft和offsetTop
? ? 用來得到對象的位置(注意:沒有offsetRight和offsetBottom)
? @offsetLeft的構成
? ? ? ? 到最近的(帶有定位的)父元素的左側/頂部的距離
? ? ? ? ?如果所有父級都沒有定位則以body為準
? ? ? ? ?offsetLeft是自身border左側到父級padding左側的距離
?@offsetLeft和style.left的區(qū)別
? ?一、style.left只能獲取行內(nèi)樣式
? ?二、offsetLeft只讀,style.left可讀可寫
? 三、offsetLeft是數(shù)值,style.left是字符串并且有單位px
? 四、如果沒有加定位,style.left獲取的數(shù)值可能是無效的
? 五、最大區(qū)別在于offsetLeft以border左上角為基準,style.left以margin左上角為基準
3? ie和dom事件流的區(qū)別
1.事件流的區(qū)別
IE采用冒泡型事件 Netscape使用捕獲型事件 DOM使用先捕獲后冒泡型事件
示例:
冒泡型事件模型: button->div->body (IE事件流)
捕獲型事件模型: body->div->button (Netscape事件流)
DOM事件模型: body->div->button->button->div->body (先捕獲后冒泡)
2.事件偵聽函數(shù)的區(qū)別
IE使用:
[Object].attachEvent("name_of_event_handler", fnHandler); //綁定函數(shù)
[Object].detachEvent("name_of_event_handler", fnHandler); //移除綁定
DOM使用:
[Object].addEventListener("name_of_event", fnHandler, bCapture); //綁定函數(shù)
[Object].removeEventListener("name_of_event", fnHandler, bCapture); //移除綁定
bCapture參數(shù)用于設置事件綁定的階段,true為捕獲階段,false為冒泡階段。