HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

HTML DOM MouseEvent relatedTargetプロパティの使い方をサンプルコードで解説

MouseEvent relatedTargetプロパティとは

MouseEventrelatedTarget プロパティは、mouseover または mouseout イベントが発生した際に、イベント対象の要素と対になる要素(マウスカーソルの移動元・移動先)への参照を返します。

例えば mouseout イベントでは「カーソルがどこへ移動したか」、mouseover イベントでは「カーソルがどの要素から来たか」をこのプロパティで取得できます。

注意: 関連する要素が存在しない場合(カーソルがブラウザの外へ移動した場合など)は、null が返されます。利用前にnullチェックを行うことをおすすめします。

構文

relatedTargetオブジェクトへの参照を取得する書式は以下の通りです。

MouseEventObject.relatedTarget

サンプルコード

それでは、MouseEvent relatedTarget プロパティの具体的な使用例を見てみましょう。

コード例

<!DOCTYPE html>
<html>
<head>
<title>MouseEvent relatedTarget</title>
<style>
   * {
      padding: 2px;
      margin:5px;
   }
   form {
      width:70%;
      margin: 0 auto;
      text-align: center;
   }
   #outer {
      width:70%;
      margin: 0 auto;
      padding: 0;
      text-align: center;
      border:1px solid black;
      height: 105px;
      background-color: #28a745;
   }
   input[type="button"] {
      border-radius: 10px;
   }
   #upper {
      border-bottom: 1px solid black;
      height: 40px;
      margin: 0 0 15px 0;
      background-color: #DC3545;
   }
   #lower {
      border-top: 1px solid black;
      height: 40px;
      margin: 15px 0 0 0;
      background-color: #DC3545;
   }
</style>
</head>
<body>
   <form>
      <fieldset>
         <legend>MouseEvent-relatedTarget</legend>
         <div id="outer" onmouseout="gameStart(event)">
         <div id="upper"><h2>Danger</h2></div>
         <div id="lower"><h2>Danger</h2></div>
         </div>
         <div id="divDisplay"></div>
      </fieldset>
   </form>
<script>
   var divDisplay = document.getElementById("divDisplay");
   var textSelect = document.getElementById("textSelect");
   function gameStart(event) {
      var fetchedID = event.relatedTarget.id
         if(fetchedID !== '')
            divDisplay.textContent = 'You are hovering over '+fetchedID+' <div> element';
         }
</script>
</body>
</html>

コードのポイント

  • 緑色の親要素 #outeronmouseout イベントを設定し、カーソルが離れたタイミングを検出しています。
  • イベントハンドラ内で event.relatedTarget.id を呼び出すことで、カーソルの移動先となった要素のIDを取得できます。
  • 取得したIDを画面下の表示領域に出力することで、どの <div> 要素上にカーソルがあるかを確認できます。

実行結果

緑色(安全エリア)にカーソルを合わせた場合:

HTML DOM MouseEvent relatedTargetプロパティの使い方をサンプルコードで解説

上側の赤(危険エリア)にカーソルを合わせた場合:

HTML DOM MouseEvent relatedTargetプロパティの使い方をサンプルコードで解説

下側の赤(危険エリア)にカーソルを合わせた場合:

HTML DOM MouseEvent relatedTargetプロパティの使い方をサンプルコードで解説

このように relatedTarget プロパティを使うことで、マウスイベント発生時に対象要素以外の関連要素を簡単に特定でき、ドラッグ&ドロップの判定やナビゲーションメニューの挙動制御など、さまざまな場面で活用できます。

  1. HTML DOM MouseEvent clientYプロパティとは?マウスのY座標を取得する方法を解説

    MouseEvent の clientY プロパティは、マウスイベントが発生した際のマウスポインタの縦方向(Y)の座標値を返します。clientX プロパティと組み合わせることで、横方向(X)の座標も同時に取得できます。これらの座標は、ブラウザの表示領域(ビューポート)の左上隅を原点(0,0)とした相対位置で表されます。そのため、画面上でカーソルが現在どの位置にあるのかを正確に把握したい場面、例えばドラッグ&ドロップの実装やミニゲームの作成などで活躍します。構文clientY の値を参照する基本的な構文は以下の通りです。MouseEventObject.clientY戻り値はピクセル単位の数値

  2. HTML DOM Ulオブジェクトとは?<ul>要素の操作方法とサンプルコードを解説

    HTML DOM の Ul オブジェクトは、HTML の <ul>(順序なしリスト)要素を表すオブジェクトです。JavaScript を使うことで、リストの動的な生成や操作が可能になります。 <ul> 要素の作成方法 新しい <ul> 要素を作成するには、document.createElement() メソッドを使用します。 var ulObject = document.createElement(UL) HTML5で非推奨となったプロパティ ulObject には以下のプロパティが存在しますが、これらは HTML5 ではサポートされていないため注