是否可以在添加事件处理程序时手动设置event.target,以便offsetX和offsetY始终相对于该目标。
<div id="outer">
<div class="inner"/>
<div class="inner"/>
</div>
<script>
document.getElementById("outer").addEventListener("click", function(){
console.log(offsetX); // this will give offsetX relative to div.inner
// but i want offsetX relative to div#outer
});
</script>
答案 0 :(得分:0)
您应该为addEventListener
添加参数。最终看起来像这样:
document.getElementById("outer").addEventListener("click", function(ev) {
console.log(ev.offsetX); }
ev
现在捕获事件,并包含您使用的某些属性。 offsetY
也将可用。如果这不起作用,您应该查看this SO post on mouse positions。您可以使用pageX
和pageY
,或ev
拥有的其他媒体资源。