Javascript 如何找到一个web元素相对于另一个web元素的位置?

Javascript 如何找到一个web元素相对于另一个web元素的位置?,javascript,Javascript,我有一个场景,在这个场景中,我必须断言web元素的存在及其位置。更清楚地说,我有一个web元素X和另一个web元素Y。现在我必须声明,单击一个按钮后,我可以看到X位于Y上方。如何做到这一点?您应该获得两个元素在文档中的位置,并从Y的值中减去X的位置值。如果该值为正值,你知道X比Y坐得更高 获得职位 使用 这将返回一个包含所有四个位置值的对象:top、right、bottom和left,相对于视口。您不需要将视口位置转换为文档位置,因为必须添加的文档偏移量对于两个元素都是相同的,并且将在减法中被剪

我有一个场景,在这个场景中,我必须断言web元素的存在及其位置。更清楚地说,我有一个web元素X和另一个web元素Y。现在我必须声明,单击一个按钮后,我可以看到X位于Y上方。如何做到这一点?

您应该获得两个元素在文档中的位置,并从Y的值中减去X的位置值。如果该值为正值,你知道X比Y坐得更高

获得职位 使用

这将返回一个包含所有四个位置值的对象:
top
right
bottom
left
,相对于视口。您不需要将视口位置转换为文档位置,因为必须添加的文档偏移量对于两个元素都是相同的,并且将在减法中被剪切

比较立场 现在减去他们的位置:

positionDifference = boxPositionOfY.top - boxPositionOfX.top;
如果
positionDifference
大于0,则X的上边框位于Y的上边框之上

如果要确保元素不重叠,请使用以下方法:

If ( (boxPositionOfY.top - boxPositionOfX.bottom) >= 0) {
    alert("X is above Y. They do not overlap.");
}

你应该得到两个元素在文档中的位置,然后从Y的值中减去X的位置值。如果该值为正值,你就知道X比Y坐得更高

获得职位 使用

这将返回一个包含所有四个位置值的对象:
top
right
bottom
left
,相对于视口。您不需要将视口位置转换为文档位置,因为必须添加的文档偏移量对于两个元素都是相同的,并且将在减法中被剪切

比较立场 现在减去他们的位置:

positionDifference = boxPositionOfY.top - boxPositionOfX.top;
如果
positionDifference
大于0,则X的上边框位于Y的上边框之上

如果要确保元素不重叠,请使用以下方法:

If ( (boxPositionOfY.top - boxPositionOfX.bottom) >= 0) {
    alert("X is above Y. They do not overlap.");
}

谢谢你,马克!这个建议看起来棒极了。我只是想试试,然后告诉你:)谢谢你,马克!这个建议看起来棒极了。我将尝试一下,并将通知:)