マウスの位置を取得する
JavaScriptでマウスの位置を取得するには、以下のようなプロパティを使用します。
- clientX, clientY
- pageX, pageY
- screenX, screenY
- offsetX, offsetY
例えば、以下のようにしてマウスの位置を取得することができます。
clientX, clientY
clientX
プロパティは、マウスポインターのX座標を返します。
clientY
プロパティは、マウスポインターのY座標を返します。
ただし、これらの値はウィンドウの左上隅からの座標で、スクロールされた場合は考慮されません。
<canvas id="canvas"></canvas>
<style>
canvas {
border: 1px solid black;
}
</style>
<script>
const canvas = document.getElementById('canvas');
const context = canvas.getContext('2d');
canvas.addEventListener('click', function(event) {
const x = event.clientX;
const y = event.clientY;
context.fillStyle = 'red';
context.beginPath();
context.arc(x, y, 5, 0, 2 * Math.PI);
context.fill();
});
</script>
上記のコードでは、click
イベントが発生するたびに、マウスポインターのclientX
およびclientY
プロパティを使用して、クリックされた位置にポイントを描画しています。
getContext
メソッドを使用して、canvas
要素の2Dコンテキストを取得し、fillStyle
プロパティを使用してポイントの色を指定し、arc
メソッドを使用してポイントを描画しています。
pageX, pageY
pageX
プロパティは、マウスポインターのX座標を返します。pageY
プロパティは、マウスポインターのY座標を返します。
これらの値は、ドキュメントの左上隅からの座標で、スクロールされた場合も考慮されます。
以下は、pageXおよびpageYプロパティを使用したサンプルコードです。この例では、ボックスの座標がマウスの位置に合わせて更新されます。
[rml_read_more]
<div id="box"></div>
<style>
#box {
width: 50px;
height: 50px;
background-color: red;
position: absolute;
}
</style>
<script>
const box = document.getElementById('box');
document.addEventListener('mousemove', function(event) {
const x = event.pageX;
const y = event.pageY;
box.style.left = x + 'px';
box.style.top = y + 'px';
});
</script>
上記のコードでは、mousemove
イベントが発生するたびに、マウスポインターのpageX
およびpageY
プロパティを使用して、ボックスの位置を更新しています。
style.left
およびstyle.top
プロパティを使用して、div
要素の位置を指定します。x
とy
にはpx
(ピクセル)単位を追加しています。
screenX, screenY
screenX
プロパティは、マウスポインターのX座標を返します。screenY
プロパティは、マウスポインターのY座標を返します。
これらの値は、画面の左上隅からの座標で、モニター上の位置を表します。
例えば、以下のようにしてマウスの位置を取得することができます。
const canvas = document.getElementById('canvas'); const context = canvas.getContext('2d'); canvas.addEventListener('click', function(event) { const x = event.screenX; const y = event.screenY; context.fillStyle = 'red'; context.beginPath(); context.arc(x, y, 5, 0, 2 * Math.PI); context.fill(); });
上記のコードでは、click
イベントが発生するたびに、マウスポインターのscreenX
およびscreenY
プロパティを使用して、クリックされた位置にポイントを描画しています。
getContext
メソッドを使用して、canvas
要素の2Dコンテキストを取得し、fillStyle
プロパティを使用してポイントの色を指定し、arc
メソッドを使用してポイントを描画しています。
offsetX, offsetY
以下は、offsetXおよびoffsetYプロパティを使用したサンプルコードです。この例では、マウスがクリックされた位置にポイントを描画します。
const canvas = document.getElementById('canvas'); const context = canvas.getContext('2d'); canvas.addEventListener('click', function(event) { const x = event.offsetX; const y = event.offsetY; context.fillStyle = 'red'; context.beginPath(); context.arc(x, y, 5, 0, 2 * Math.PI); context.fill(); });
上記のコードでは、click
イベントが発生するたびに、マウスポインターのoffsetX
およびoffsetY
プロパティを使用して、クリックされた位置にポイントを描画しています。
getContext
メソッドを使用して、canvas
要素の2Dコンテキストを取得し、fillStyle
プロパティを使用してポイントの色を指定し、arc
メソッドを使用してポイントを描画しています。
まとめ
- clientX, clientY
- pageX, pageY
- screenX, screenY
- offsetX, offsetY
これらのコードを使って、マウスポインターや画面の位置を取得することができます。