使用JavaScript查找HTML元素的X / Y
时间:2020-03-06 15:00:08 来源:igfitidea点击:
如果未明确设置HTML元素(DIV)的XY坐标,如何从JavaScript中找到它们?
解决方案
根据浏览器和版本的不同,这可能会很棘手。我建议使用jQuery和positions插件。
我不确定我们需要什么,并且这些东西总是相对的(屏幕,窗口,文档)。但是当我需要弄清楚这一点时,我发现此站点很有帮助:
http://www.mattkruse.com/javascript/anchorposition/source.html
而且我还发现,有人为jQuery制作的工具提示插件对x,y定位技巧有各种有趣的见解(请查看其视口类以及jQuery为此提供的基础支持)。
http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
我们可以使用Prototype或者jQuery之类的库,也可以使用以下便捷功能:
它返回一个数组。
myPos = findPos(document.getElementById('something'))
x = myPos[0]
y = myPos[1]
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent) {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
return [curleft,curtop];
}
这是我的方法:
// Based on: http://www.quirksmode.org/js/findpos.html
var getCumulativeOffset = function (obj) {
var left, top;
left = top = 0;
if (obj.offsetParent) {
do {
left += obj.offsetLeft;
top += obj.offsetTop;
} while (obj = obj.offsetParent);
}
return {
x : left,
y : top
};
};

