首頁  >  文章  >  web前端  >  js實作jquery的offset()方法實例_javascript技巧

js實作jquery的offset()方法實例_javascript技巧

WBOY
WBOY原創
2016-05-16 16:21:191186瀏覽

本文實例講述了js實作jquery的offset()方法。分享給大家供大家參考。具體分析如下:

用過jQuery的offset()的同學都知道offset().top或offset().left很方便地取得元素相對於整個頁面的偏移。

而在js裡,沒有這樣直接的方法,節點的屬性offsetTop可以獲得該節點相對於父節點的相對偏移,但不能直接獲得其絕對偏移,我們可用節點逐層遞歸向上來相加offsetTop來獲得絕對偏移。

複製程式碼 程式碼如下:
function getOffset(Node, offset) {
    if (!offset) {
        offset = {};
        offset.top = 0;
        offset.left = 0;
    }

    if (Node == document.body) {//當該節點為body節點時,結束遞迴
        return offset;
    }

    offset.top = Node.offsetTop;
    offset.left = Node.offsetLeft;

    return getOffset(Node.parentNode, offset);//向上累加offset裡的值
}


 

使用時,則如:

複製程式碼 程式碼如下:
var a = document.getElementById('a');
//getOffset(a).top
//getOffset(a).left

希望本文所述對大家的javascript程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn