私はmousemoveを使用して要素に対してマウスの位置を取得しようとしています。 これは問題なく動作しますが、マウスが子要素にマウスポインタを置くと、座標はこの子を基準にしています。私はマウスの位置を子divではなく親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
が動作するのか分かりません。
私はこれを(タッチマウスでmousemoveを置き換えることによって)親しみやすいようにしたいので、マウスセンターまたは他のすべてのマウスコントロールを使用することはできません。
アイデア?
マウスの座標は、ページではなくメインdivを基準にする必要があります。 私はevent.offsetXがこのケースで座標を取得するための唯一の有効な方法だと思っています – Julian
メインdivのオフセットを差し引くと、それはそうです。私はフィドルに取り組んでいます。ちょっと待って。 – danijar
ありがとうございますが、私の質問には答えません。 あなたの例では、子の位置は親のdivに対するマウスの位置で更新されますが、これは私が望むものではありません。 マウスをマウスの上に置いても親のdivに相対的なマウスの位置を取得したいだけです(子が存在しない場合など)。 – Julian