[Web] JavaScriptでマウス座標やスクロール量を取得する
今日は、JavaScriptでマウスの位置や、ウインドウサイズ、スクロール量を取得するスクリプトを作成しました。
HTML5のCanvasとかでマウス座標を扱う時に、参考になればと思い、纏めてみました。
http://www.yoheim.net/labo/tips/getSeveralValue.html
ここでもJavaScriptソースコードを公開しておきます(`・ω・´)
ご参考になれば幸いです。
また便利なスニペットがあったら、ブログにも書きたいと思います。
最後まで読んで頂きましてありがとうございました(*゚▽゚)ノ
HTML5のCanvasとかでマウス座標を扱う時に、参考になればと思い、纏めてみました。
http://www.yoheim.net/labo/tips/getSeveralValue.html
機能の説明
上記の画面では、以下の値を取得できます。マルチブラウザの対応もしてます。- Window左上からのマウスの座標を取得する
- 特定要素内での左上からのマウスの座標を取得する
- 画面のスクロール量を取得する
- 画面サイズを取得する
JavaScriptソースコード
今回作成した目的は、上記の機能を利用する事が時々あって、 その度に調べたりするのが面倒!!ということで、スニペットとして残したかったので、作成しました。ここでもJavaScriptソースコードを公開しておきます(`・ω・´)
ご参考になれば幸いです。
window.addEventListener("load", function () { // Window上のマウス座標を取得する window.onmousemove = function (e) { var mouseX, mouseY; // マルチブラウザ対応のため、引数eventが指定されないブラウザは、 // グローバルなeventオブジェクトを利用する。 if (e) { mouseX = e.pageX; mouseY = e.pageY; } else { mouseX = event.pageX + document.body.scrollLeft; mouseY = event.pageY + document.body.scrollTop; } // 取得した値を表示する document.getElementById("mouseX").value = mouseX; document.getElementById("mouseY").value = mouseY; } // ページスクロール量を取得する window.onscroll = function () { // マルチブラウザ対応のため、 // 2種類のプロパティから設定されている値を取得する var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; var scrollY = document.documentElement.scrollTop || document.body.scrollTop; // 取得した値を画面に表示する document.getElementById("scrollX").value = scrollX; document.getElementById("scrollY").value = scrollY; } // 特定のDIV要素内でのマウス位置を取得する document.getElementById("targetDiv").onmousemove = function (e) { var mouseX, mouseY, offsetX=0, offsetY=0; var element = this; // まずは、対象DIV要素が // 画面上のどの位置にあるかを取得する while (element) { offsetX += element.offsetLeft; offsetY += element.offsetTop; element = element.offsetParent; } // DIV位置を考慮して、 // X,Y座標を計算する if (e) { mouseX = e.pageX - offsetX; mouseY = e.pageY - offsetY; } else { mouseX = event.pageX + document.body.scrollLeft - offsetX; mouseY = event.pageY + document.body.scrollTop - offsetY; } // 取得した値を表示する document.getElementById("divMouseX").value = mouseX; document.getElementById("divMouseY").value = mouseY; } // Windowサイズを取得する // 画面表示時に取得するのと、 // 画面サイズが変わった時に、ウインドウサイズを再取得する document.getElementById("windowW").value = window.innerWidth; document.getElementById("windowH").value = window.innerHeight; window.onresize = function (e) { var w = window.innerWidth; var h = window.innerHeight; document.getElementById("windowW").value = w; document.getElementById("windowH").value = h; } }
最後に
JavaScriptのスニペットが色々とあってすぐに参照出来ると、 実装も速くなって良いですね(覚えていれば一番良いと思いますが)。また便利なスニペットがあったら、ブログにも書きたいと思います。
最後まで読んで頂きましてありがとうございました(*゚▽゚)ノ