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

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

MouseEventclientY プロパティは、マウスイベントが発生した際のマウスポインタの縦方向(Y)の座標値を返します。clientX プロパティと組み合わせることで、横方向(X)の座標も同時に取得できます。

これらの座標は、ブラウザの表示領域(ビューポート)の左上隅を原点(0,0)とした相対位置で表されます。そのため、画面上でカーソルが現在どの位置にあるのかを正確に把握したい場面、例えばドラッグ&ドロップの実装やミニゲームの作成などで活躍します。

構文

clientY の値を参照する基本的な構文は以下の通りです。

MouseEventObject.clientY

戻り値はピクセル単位の数値で、読み取り専用のプロパティです。

関連プロパティとの違い

Y座標を取得できるプロパティには類似のものがいくつかあり、基準点が異なる点に注意が必要です。

  • clientY:ビューポート(表示領域)の左上を基準としたY座標
  • pageY:ドキュメント全体の左上を基準としたY座標(スクロール量を含む)
  • screenY:物理的なモニタ画面の左上を基準としたY座標

MouseEvent clientYプロパティの使用例

次の例では、clientY を使ったシンプルなミニゲームを実装しています。「Start」ボタンを押すとゲームが開始され、緑色の「安全エリア」内でカーソルを動かしながら、赤い「危険エリア」に触れずにゴールを目指します。

サンプルコード

<!DOCTYPE html>
<html>
<head>
<title>MouseEvent clientY</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-clientY</legend>
         <div id="outer">
         <div id="upper"><h2>DANGER</h2></div>
         <div id="lower"><h2>DANGER</h2></div>
         </div>
         <input type="button" id="start" value="Start" onclick="gameStart()">
         <div id="divDisplay"></div>
      </fieldset>
   </form>
<script>
   var divDisplay = document.getElementById('divDisplay');
   var gameDisplay = document.getElementById('outer');
   function playGame(event) {
      var x = event.clientX;
      var y = event.clientY;
         if(y > 95 && y < 110){
            divDisplay.textContent = 'その調子!';
               if(x === 439){
                  divDisplay.textContent = 'おめでとう!成功だ!';
                  gameDisplay.removeEventListener('mousemove', playGame);
               }
         }
         else{
            divDisplay.textContent = '危険エリアに入ってしまいました。あなたの負けです!';
            gameDisplay.removeEventListener('mousemove', playGame);
         }
   }
   function gameStart(){
      gameDisplay.addEventListener('mousemove',playGame);
   }
</script>
</body>
</html>

出力結果

Start」ボタンをクリックし、カーソルが緑色(安全)エリア内にある場合 −

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

Start」ボタンをクリックし、カーソルが緑色(安全)エリアの終端に到達した場合 −

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

Start」ボタンをクリックし、カーソルが赤色(危険)エリア内に入った場合 −

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


  1. HTML DOM MouseEventのoffsetYプロパティとは?使い方とサンプルコードを解説

    offsetYプロパティとは HTML DOM の MouseEvent offsetY プロパティは、マウスイベントが発生した際に、イベントのターゲット要素を基準としたマウスポインタの垂直方向(Y軸)の座標をピクセル単位で返します。 水平方向(X軸)の座標も同時に取得したい場合は、offsetX プロパティと組み合わせて使用します。 このプロパティは読み取り専用であり、ターゲット要素のパディング領域を含む左上隅を原点(0, 0)として座標が計算される点に注意してください。 構文 offsetY の値を参照するための基本的な構文は以下のとおりです。 MouseEventObject.offs

  2. HTML DOMのMouseEvent offsetXプロパティとは?マウス座標の取得方法を解説

    MouseEvent offsetXプロパティとはHTML DOMのMouseEvent offsetXプロパティは、マウスイベントが発生した際に、ターゲット要素を基準としたマウスポインタの水平方向(X軸)の座標を返します。垂直方向(Y軸)の座標を取得したい場合は、offsetYプロパティと組み合わせて使用します。これらのプロパティを活用することで、要素内でのマウスの正確な位置を把握でき、ドラッグ&ドロップ操作やゲーム、カスタムカーソル追従機能など、さまざまなインタラクティブなWebアプリケーションの実装に役立ちます。構文(シンタックス)offsetXプロパティの値を参照する基本的な構文は以下