JavaScriptで「キーイベント」「マウスイベント」「加速度センサーイベント」を取得するプログラムのシンプルなひな形を作った。
マウスは、押したまま動かすとウインドウ左上を0,0としたXY座標を表示します。
HTML部分
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="mystyle.css"> <script src="onEvent.js"></script> <title>JavaScript de Event</title> </head> <body> <h1>JavaScript de Event</h1> <p><strong>キーイベント・マウスイベント・加速度センサーイベント</strong>を取得します</p> <p id="display">イベントをどうぞ!</p> </body> </html>
JavaScript部分
/*
* JavaScript de Event
*/
// 画面表示関数(いわゆるprint)
function print(str){
document.getElementById("display").innerHTML = str;
}
// キーイベントの取得
window.onkeydown = keyHandler;
function keyHandler(e){
print("keyCode = " + e.keyCode);
}
// マウスイベントの取得
var isMouseDown = false;
window.onmousedown = mouseDownHandler; // スマホならontouchstart
window.onmouseup = mouseUpHandler; // スマホならontouchmove
window.onmousemove = mouseMoveHandler; // スマホならontouchend
function mouseDownHandler(e){
isMouseDown = true;
print("マウスを押した!");
}
function mouseUpHandler(e){
isMouseDown = false;
print("マウスを離した!");
}
function mouseMoveHandler(e){
if(isMouseDown){
// マウスの絶対位置を取得
var x = e.clientX;
var y = e.clientY;
// 相対座標の計算
var r = e.target.getBoundingClientRect();
x -= r.left;
y -= r.top;
print("mouseXY = " + x + ", " + y);
}
}
// 加速度センサーイベントの取得
window.ondevicemotion = motionHandler;
function motionHandler(e){
// 左右方向
var x = e.accelerationIncludingGravity.x;
// 上下方向
var y = e.accelerationIncludingGravity.y;
// 前後方向
var z = e.accelerationIncludingGravity.z;
print("加速度センサー x: " + x + " y: " + y + " z: " + z);
}


コメント