獲取任意Html元素與body之間的偏移距離offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧
來源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-27 20:34:09
獲取任意Html元素與body之間的偏移距離offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧
獲取任意Html元素與body之間的偏移距離offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧:問題: 如何取到頁面中任意某個(gè)Html元素與body元素之間的偏移距離? offsetTop和offsetLeft 這兩個(gè)屬性,IE 、Opera和Firefox對(duì)它倆的解釋存在差異: IE5.0+ 、Opera8.0+: offsetTop和offsetLeft 都是相對(duì)父級(jí)元素 Firefox1.06: o
導(dǎo)讀獲取任意Html元素與body之間的偏移距離offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧:問題: 如何取到頁面中任意某個(gè)Html元素與body元素之間的偏移距離? offsetTop和offsetLeft 這兩個(gè)屬性,IE 、Opera和Firefox對(duì)它倆的解釋存在差異: IE5.0+ 、Opera8.0+: offsetTop和offsetLeft 都是相對(duì)父級(jí)元素 Firefox1.06: o
問題:
如何取到頁面中任意某個(gè)Html元素與body元素之間的偏移距離?
offsetTop和offsetLeft 這兩個(gè)屬性,IE 、Opera和Firefox對(duì)它倆的解釋存在差異:
IE5.0+ 、Opera8.0+: offsetTop和offsetLeft 都是相對(duì)父級(jí)元素
Firefox1.06: offsetTop和offsetLeft 都是相對(duì)于body元素
因此:
(1)在FF下直接使用offsetTop和offsetLeft,就可以取到頁面中任意某個(gè)Html元素與body元素之間的偏移距離;
(2)在IE、Opera下則比較麻煩:
需要首先取到該Html元素與body元素之間所有Html元素,計(jì)算各自的offsetTop和offsetLeft,然后再累加。
即:從該Html元素開始,遍歷至body,在遍歷的過程中,如果某個(gè)HTML元素的CSS設(shè)置了borderWidth的話,則borderWidth不是算在offsetTop和offsetLeft內(nèi)的--因此在遍歷的過程中,還需要累加上:
obj.currentStyle.borderLeftWidth、obj.currentStyle.borderTopWidth
下面這段測(cè)試代碼已經(jīng)解決上述問題,兼容IE5、FF1,但在Opera8下無效
實(shí)例代碼:
代碼實(shí)例:獲取任意Html元素與body之間的偏移距離 offsetTop、offsetLeft 測(cè)試
測(cè)試
測(cè)試
測(cè)試
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。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技巧:問題: 如何取到頁面中任意某個(gè)Html元素與body元素之間的偏移距離? offsetTop和offsetLeft 這兩個(gè)屬性,IE 、Opera和Firefox對(duì)它倆的解釋存在差異: IE5.0+ 、Opera8.0+: offsetTop和offsetLeft 都是相對(duì)父級(jí)元素 Firefox1.06: o