ここは、ふぇりあ16歳が不定期に連載しているオンライン小説のページです。
VNIふぇりあ16歳へ
ゼロからわかる現代JavaScript
49.マウス入力とイベントe
マウスの入力についてです。
Javascriptでもマウスからの入力を得ることができます。
マウスのボタンが押された時の場合
・onmousedown
onmousedownイベントでボタンが押された時の
動作を定義できます。
・e.which
イベントのプロパティ which は
左:1
真ん中:2
右:3
と数値を返します。
また、マウスを動かした場合
・onmousemove
onmousedownイベントでマウスが動かされた時の
動作を定義できます。
イベントのプロパティ pageX, pageY
で座標を取得することもできます。
今回使用するソースコード |
function main() { //イメージ要素の作成 div = document.createElement("div"); //<body>に要素を追加 document.body.appendChild(div); } document.onmousedown = function (e) { if(e.which == 1) alert("左ボタンが呼ばれました"); if(e.which == 3) alert("右ボタンが呼ばれました"); } document.onmousemove = function (e) { //div要素にマウスのX座標を出力 div.innerHTML = "X座標:" + e.pageX + "Y座標" + e.pageY; } |
さて、このfuntcion の引数 e は一体なんでしょう?
引数なのにどこにも使われていないように見えます
この e は、マウス操作をした時のイベントオブジェクトが入っています。
そして、実は、
メソッド(e)
のようにイベントのどこかで使われているのです。
そのため、e は、イベントオブジェクトを受け取り
メソッドの中で e.which とプロパティやメソッドを実行できるのです。
オブジェクト指向の迷いやすい部分として、ブラックボックスになっているところが
よく分からなくなります。しかし、上記のように考えるとかなりすっきりします。
さらにいえば、その謎の部分を気にせず、「こう使うものだ」と覚えるべきです。
実行結果
(マウスの左右をクリックしてください)
コラム:
また、e のような方法でよく、他の言語でも
イベントやオーバーライドするときに同じような方法が使われます。
通常の引数ではないので要注意です。
(C)著作権はふぇりあ16歳とお兄ちゃんにあります。
無断転載、盗用は禁止です。