无论如何在不使用e.pageX和e.pageY的情况下定位任何元素.
检查这个fiddle
小提琴实际上是对我试图提出的问题的不良尝试,但我认为一个视觉例子会更好.我想知道的是,是否有可能通过参考使用找到DOM上任何元素的X和Y坐标
document.getElementByID('elementID');
或者可能
document.getElementsByTagName('TagName');
编辑:虽然我在FIDDLE中使用了Jquery,但我想要一个仅使用JavaScript的可能解决方案.
解决方法
你可以用
document.getElementById("elementID").offsetTop; document.getElementById("elementID").offsetLeft;
请参阅MDN.它们返回父元素的偏移量.如果你需要元素相对于整个身体的偏移,它可能会变得更加棘手,因为你必须总结链中每个元素的偏移量.
分别为.getElementsByTagName,因为DOM中的每个对象都具有这些属性.
.getBoundingClientRect也是worth a look.
var clientRectangle = document.getElementById("elementID").getBoundingClientRect(); console.log(clientRectangle.top); //or left,right,bottom