本文實例講述了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程序設計有所幫助。