Ich versuche, Mausposition relativ zu einem Element mithilfe von Mousemove zu erhalten. Es funktioniert gut, aber wenn die Maus ein untergeordnetes Element schwebt, sind die Koordinaten relativ zu diesem Kind. Ich möchte die Mausposition relativ zum übergeordneten div, nicht das Kind.Ignorieren untergeordnete Elemente auf Maus
Siehe zum Beispiel 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();
Hinzufügen event.stopPropagation()
auf Kind zurück keine Daten. Und ich bin mir nicht sicher, wie event.currentTarget
funktioniert.
Ich kann nicht mouseenter oder jede andere Maus nur steuern, weil ich will, dass diese berührungsfreundlich ist (indem man mousemove durch touchmove ersetzt).
Irgendwelche Ideen?
Die Mauskoordinaten müssen relativ zum Hauptteil sein, nicht zur Seite. Ich denke, event.offsetX ist der einzige gültige Weg, um Koordinaten in diesem Fall – Julian
zu bekommen sie sind, wenn Sie den Offset des Hauptdiv abziehen. Ich arbeite an einer Geige. Warte eine Minute. – danijar
Danke, aber es beantwortet meine Frage nicht. In Ihrem Beispiel wird die untergeordnete Position mit der Mausposition relativ zum übergeordneten div aktualisiert, das ist nicht das, was ich möchte. Ich möchte nur die Mausposition relativ zum Eltern-Div auch wenn die Maus ein Kind schweben (wie wenn das Kind nicht existieren). – Julian