也許.. 。
var offset = { top: 0, left: 0 };
do {
offset.top += elem.offsetTop;
offset.left += elem.offsetLeft;
elem = elem.parentNode;
} while (elem != null && elem.id !== "outer-div");
您考慮,如果elem
不被outer-div
遏制,這將在文檔中返回它的位置。
另一種形式給出,重一點,但它是非常接近的jQuery的解決方案:
function getOffset(elem) {
var offset = elem.getBoundingClientRect();
var docElem = document.documentElement;
return {
top: offset.top + window.pageYOffset - docElem.clientTop,
left: offset.left + window.pageXOffset - docElem.clientLeft
};
}
var offsetOuter = getOffset(document.getElementById("outer-div"));
var offsetTextarea = getOffset(document.getElementById("TA1"));
console.log(offsetOuter.left - offsetTextarea.left); // ta-da
我認爲,您只使用香草JS,無庫(jQuery的或其他)。
我不確定,但你可能會得到你的textarea的頁面偏移量,並扣除父元素的頁面偏移量。 – isherwood
http://api.jquery.com/position/或http://api.jquery.com/offset/ – andleer
@andleer OP從未在此提及過「jquery」... – gustavohenke