我有一个外部div捕获onWheel
鼠标事件。在处理程序中,我想知道鼠标指针坐标相对于外部div 。例如:
constructor() {
this.handleWheel = this.handleWheel.bind(this);
}
handleWheel(event) {
// how do I get mouse position relative to the outer div here?
}
render() {
return (
<div onWheel={this.handleWheel}>
...
<img src="..." />
...
</div>
)
}
当我将鼠标指针移到图像上并滚动鼠标滚轮时,event.target
设置为<img>
,event.currentTarget
设置为<div>
。我也可以获得相对于event.target
(event.nativeEvent.offsetX/Y
)的鼠标位置,但这对我没有帮助,因为我不知道<img>
相对于<div>
的位置。
换句话说,我被卡住了......如何获得相对于附加处理程序的元素的鼠标位置?
答案 0 :(得分:1)
我找到了一个有效的解决方案,如果它可以帮助某人,我会在这里发布。我不确定它是否是最好的,所以我会很感激一些评论(可能还有更好的解决方案)。
handleWheel(event) {
let currentTargetRect = event.currentTarget.getBoundingClientRect();
const event_offsetX = event.pageX - currentTargetRect.left,
event_offsetY = event.pageY - currentTargetRect.top;
//...
}