我嘗試使用mousemove獲取相對於元素的鼠標位置。 它工作正常,但是當鼠標懸停一個子元素時,座標是相對於這個孩子的。我想要相對於父div的鼠標位置,而不是孩子。忽略mousemove上的子元素
見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替代鼠標移動)。
任何想法?
鼠標座標必須相對於主div,而不是頁面。 我認爲event.offsetX是唯一有效的方法來獲得這種情況下的座標 – Julian
他們是,如果你減去主要的div的偏移量。我正在小提琴上工作。等一下。 – danijar
謝謝,但它沒有回答我的問題。 在你的例子中,孩子的位置相對於父div的鼠標位置更新,這不是我想要的。 我只想獲得鼠標相對於父div的位置,即使鼠標懸停在一個孩子身上(如果孩子不存在)。 – Julian