獲取任意Html元素與body之間的偏移距離offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧
來源:懂視網
責編:小采
時間:2020-11-27 20:34:09
獲取任意Html元素與body之間的偏移距離offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧
獲取任意Html元素與body之間的偏移距離offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧:問題: 如何取到頁面中任意某個Html元素與body元素之間的偏移距離? offsetTop和offsetLeft 這兩個屬性,IE 、Opera和Firefox對它倆的解釋存在差異: IE5.0+ 、Opera8.0+: offsetTop和offsetLeft 都是相對父級元素 Firefox1.06: o
導讀獲取任意Html元素與body之間的偏移距離offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧:問題: 如何取到頁面中任意某個Html元素與body元素之間的偏移距離? offsetTop和offsetLeft 這兩個屬性,IE 、Opera和Firefox對它倆的解釋存在差異: IE5.0+ 、Opera8.0+: offsetTop和offsetLeft 都是相對父級元素 Firefox1.06: o

問題:
如何取到頁面中任意某個Html元素與body元素之間的偏移距離?
offsetTop和offsetLeft 這兩個屬性,IE 、Opera和Firefox對它倆的解釋存在差異:
IE5.0+ 、Opera8.0+: offsetTop和offsetLeft 都是相對父級元素
Firefox1.06: offsetTop和offsetLeft 都是相對于body元素
因此:
(1)在FF下直接使用offsetTop和offsetLeft,就可以取到頁面中任意某個Html元素與body元素之間的偏移距離;
(2)在IE、Opera下則比較麻煩:
需要首先取到該Html元素與body元素之間所有Html元素,計算各自的offsetTop和offsetLeft,然后再累加。
即:從該Html元素開始,遍歷至body,在遍歷的過程中,如果某個HTML元素的CSS設置了borderWidth的話,則borderWidth不是算在offsetTop和offsetLeft內的--因此在遍歷的過程中,還需要累加上:
obj.currentStyle.borderLeftWidth、obj.currentStyle.borderTopWidth
下面這段測試代碼已經解決上述問題,兼容IE5、FF1,但在Opera8下無效
實例代碼:
代碼實例:獲取任意Html元素與body之間的偏移距離 offsetTop、offsetLeft 測試
測試
測試
測試
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
獲取任意Html元素與body之間的偏移距離offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧
獲取任意Html元素與body之間的偏移距離offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧:問題: 如何取到頁面中任意某個Html元素與body元素之間的偏移距離? offsetTop和offsetLeft 這兩個屬性,IE 、Opera和Firefox對它倆的解釋存在差異: IE5.0+ 、Opera8.0+: offsetTop和offsetLeft 都是相對父級元素 Firefox1.06: o