mousemoveを使用して、要素に対するマウスの位置を取得しようとしています。正常に動作しますが、マウスが子要素にカーソルを合わせると、座標はこの子に相対的です。子ではなく、親divに対するマウスの位置が必要です。
たとえば、この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
機能するのかわかりません。
(mousemoveをtouchmoveに置き換えて)タッチフレンドリーにしたいので、mouseenterまたは他のすべてのマウスのみのコントロールを使用することはできません。
何か案は?