A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>div1の領域の一部に重なって表示している別の要素
重なっている要素のうちの、ある部分ではイベントと判断し、別の部分ではそうでないという意味でしょうか?
一番簡単なのは、目的に合うようにHTMLの構成を調整してしまうことだと言えますが、そういうわけにも行かないのでしょうから…
方法はいろいろあろうかと思いますが、目的のイベント処理の前にイベントをフィルタリングする関数を作ってあげればよろしいかと思います。
jQueryのmouseenterやmouseleaveも内部で同様のことを行なっているはずで、mouseoverやmosuoutを監視してこれをmouseenterやmouseleaveに判断し直してイベントを発生させているはずです。
ただし、ご質問のケースでは上にある一つの要素内をマウスが移動していても対象範囲内の場合と対象範囲外の場合があって、その場合にイベント処理を使い分けたいのでしょうから、通常のmouseoverやmosuoutの監視だけではうまくいかないでしょう。
よくわかってませんが、想像するところ、#div1のエリア内にマウスがあるか/ないかで判定すれば、ご質問の内容に合うのではないでしょうか。
マウスイベントはバブリングするので、両方の上位要素でまとめて処理を行なっても良いですし、要素が#div1と重なる要素の2つだけに限定できるのなら、重なっている要素内にマウスがある間だけマウスの位置を監視するようにしておいてもよろしいかと思います。
もっと広げて、最上位のdocument要素で常時マウス位置を監視して、document上の対象エリアにあるかないかでイベントの発生を判断するといった考え方もできると思いますが、常時監視の場合、処理がいつも動作する関係から、なるべく負荷のかからない記述にしておく必要がありそうに思います。
その意味からは、特定した要素内にマウスがあるときだけ監視するほうが良いかもしれません。
具体的な監視方法としては、mousemoveなどでマウスの位置と対象要素を監視して、対象エリアに入る/出るが発生した時に、目的の処理(=もとからのイベント処理)に処理を渡すような、フィルタリング関数を作成しておくといった感じです。
・・・と、ここまで書いて思いついたのは、
ある範囲へのマウスの出入りを監視すれば良いだけでしたら、一番上に重ねて範囲のみのdivを表示しておき、そのdivに対してmouseover/outを設定しておくという方法でも目的を達せられそうに思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- PHP アップロードファイルの数に応じてCSSを動的に変更したいのですが、方法がわかりません 3 2023/07/23 21:59
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- HTML・CSS 要素の幅をいろんな写真の幅に合わせたい。 1 2022/07/25 20:11
- その他(プログラミング・Web制作) pythonでのカーソル移動がずれる 2 2023/07/30 08:51
- JavaScript 【Javascript】ボタンクリックで2つのclassに対し、それぞれ別のclassを追加したい 1 2022/07/29 20:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA HTTPを用いたWEB画面の取...
-
マイページはどこを開くの
-
ウインドウを毎回同じ位置、大...
-
エクセルのシート上に別のシー...
-
デジタル時計の時刻合わせの方...
-
Javascript_submit()完了後に処...
-
VBA ポップアップが表示された...
-
エクセルVBAでフォームのListbo...
-
一定時間おきにアラームやポッ...
-
Excelで1.2行目だけ固定して...
-
PDFを(htmlのように)無限に縦...
-
スクリプトって、何ですか?ど...
-
デスクトップ画面を4分割するには
-
ポップアップと作業ウィンドウ...
-
「Cancel = True」とはどういう...
-
Excelの質問で票の途中に...
-
ポップアップウィンドウがブロ...
-
ウィンドウの2重起動を防止したい
-
VBAで任意のウインドウのサイズ...
-
小さな表示窓の呼び方は
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(VBS) テキストファイル読込で...
-
bxSliderで動画をスライドごと...
-
【VBA/HTML】特定のタグ要素に...
-
VC++のデバッガでvectorの要素...
-
スプレッドシートのチェックボ...
-
【VB.NET】HTML要素を取得しよ...
-
[C++] vector<string> の各要素...
-
SexyLightbox(jquery)について
-
lispについて質問です
-
JavaScriptでクリップボードの...
-
WebサイトのHTMLオブジェクトの...
-
PL/Iについて、教えてください。
-
MFCを使って、ひとつのkey(CStr...
-
どこまでを動的に、どこまでを...
-
jQueryで<body>要素にマウスが...
-
JQuery、セレクトボックスをル...
-
no confilict で value値が取れな
-
jqueryでtable内容の置き換え
-
マイページはどこを開くの
-
デジタル時計の時刻合わせの方...
おすすめ情報