【发布时间】:2012-09-22 19:00:07
【问题描述】:
我尝试使用 mousemove 获取鼠标相对于元素的位置。 它工作得很好,但是当鼠标悬停在一个子元素上时,坐标是相对于这个子元素的。我想要鼠标相对于父 div 的位置,而不是子元素。
例如,请参阅this JSFiddle。
var object = document.getElementsByClassName('object'),
scene = document.getElementById('scene');
function initMove() {
for(var i=0; i<object.length; i++) {
object[i].addEventListener("mousemove", function(event) {
//event.stopPropagation();
return false;
}, false);
}
scene.addEventListener("mousemove", function (event) {
//event.stopPropagation();
//event.currentTarget;
moveX = event.offsetX;
moveY = event.offsetY;
console.log(moveX + ' + ' + moveY);
}, false);
}
function init() {
initMove();
document.onselectstart = function(){ return false; }
};
init();
在子节点上添加 event.stopPropagation() 不会返回任何数据。
而且我不确定event.currentTarget 是如何工作的。
我不能使用 mouseenter 或其他所有仅鼠标控件,因为我希望它是触摸友好的(通过用 touchmove 替换 mousemove)。
有什么想法吗?
【问题讨论】:
标签: javascript mousemove mouse-position