HP作成講座、脱初心者編
マウスで文字や画像を動かす。その1
JAVAスクリプトを使って、マウスで文字や画像をドラッグ出来るようにするためには、マウスカーソルの動きや位置をJAVAスクリプトで扱えるようにする必要があります。

マウスカーソルを動かすと、画面上のその位置、left(x座標)とtop(y座標)を表示します。

このソースは、
<html>

<head>

<script language="JavaScript">
<!--
var x1,y1;
function zahyou() {
x1 = event.clientX + document.body.scrollLeft;
y1 = event.clientY + document.body.scrollTop;
mx.innerText = "マウスカーソルの位置、left(x座標)は?" + x1;
my.innerText = "マウスカーソルの位置、top(y座標)は?" + y1;

}
document.onmousemove = zahyou;
//-->
</script>

</head>

<body>

マウスカーソルを動かすと、画面上のその位置、left(x座標)とtop(y座標)を表示します。<br>
<div id="mx"></div>
<div id="my"></div>

</body>

</html>

JAVAスクリプトから見ていきましょう。

まず、zahyou()という、関数があります。
そして、その関数の次に、document.onmousemove = zahyou;と、書かれています。
これは、マウスカーソルが移動したら、zahyou()を、実行すると言う意味です。()は、書きません。(参照、マウスボタンイベント
では、zahyou()の中身を見ていきましょう。

まず、x1 = event.clientX + document.body.scrollLeft;です。
event.clientXというのは、マウスカーソルが、HPが表示されている画面の左端から、何ピクセルのところにあるのかという、マウスカーソルの横の位置を示しています。
そして、その後ろに書かれているdocument.body.scrollLeftと言うのは、画面が横方向にスクロールした場合の、どれだけスクロールしたかを示しています。
これを足しておくと、マウスカーソルの横方向の現在位置+スクロールした量で、スタイルシートのposition:absoluteで使用する”left”の値を計算できます。

y1 = event.clientY + document.body.scrollTopも、同じように、HPを表示している画面の上からの位置と(event.clientY)、上下方向にスクロールした量(document.body.scrollTop)を足して、同じくtopの位置を計算しています。
そして、leftの位置とtopの位置をそれぞれ表示させます。
mx.innerText = "マウスカーソルの位置、left(x座標)は?" + x1;
my.innerText = "マウスカーソルの位置、top(y座標)は?" + y1;

innerTextについては、こちらを参照してください。

ここでは、計算したleftとtopの値(x1とy1)をHP上に表示させているのです。
このように、マウスカーソルが動くと、zahyou()が実行され、マウスカーソルの位置を計算して、HP上に表示しています。
次回は、このようにして計算できるマウスカーソルの位置に合わせて画像や文字を移動させて見ましょう。
PC−Parkトップ
心の話サイコロTown!




広告 万馬券 無料レンタルサーバー ブログ blog