前提
<div>内にオンマウスでJavaScriptのonmousemoveでイベント発火とマウス座標を取得、<div>の子要素<span>がマウス位置を追随(マウス位置と重なる)、……というところまでは出来ました。発生している問題
<div>内であっても、子要素の<span>にマウスが入る=<div>から出た、となって、マウスを動かすたびに<span>が初期位置に戻ったり戻らなかったりする。実現したいこと
追随させたいのでonmouseenterではダメで、<span>がマウスと重なる位置に来る、というところも外せないです。
mouseover → onmouseenter、mouseout → mouseleave のように、onmousemoveで子要素にバブリングさせない方法はありますか?
または同様のことを実現可能な他の手法はありますか?
該当のソースコード
JavaScript
1// なるべく旧ブラウザにも対応の書き方。 2// htmlは<div class='DIVs'><span>*</span></div> 3 4var DIVs = document.querySelectorAll('.DIVs'); 5// 同ページ内に複数あるのでfor 6for (var i = 0; i < DIVs.length; i++) { 7 DIVs[i].onmousemove = function(event){ 8 this.children[0].style.top = event.offsetY -10 + 'px'; 9 this.children[0].style.left = event.offsetX -10 + 'px'; 10 } 11 // <div>からマウスが外れたら<span>は元の位置へ 12 DIVs[i].onmouseleave = function(){ 13 this.children[0].style.top = '0'; 14 this.children[0].style.left = '0'; 15 } 16};
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/04 11:32
2021/10/04 21:06
2021/10/04 21:19