ホームページ | Pirikaで化学 | ブログ | 業務案内 | お問い合わせ |
Pirikaで化学トップ | 情報化学+教育 | HSP | 化学全般 |
情報化学+教育トップ | 情報化学 | MAGICIAN | MOOC | プログラミング |
プログラミング・トップ | 親子で | JavaScript演習 | 化学系 | HSPiP用 |
2021.2.11
水色のキャンバス中でマウスを動かしてください。
キャンバス中のマウスの位置を表示します。
キャンバスにイベントを取り出す機能を付け加えます。
canvas.addEventListener('mousemove', function (evt) {
var mousePos = getMousePosition(canvas, evt);
var message = 'Mouse position X:' + mousePos.x + ', Y:' + mousePos.y;
PrintPosition(canvas, message);
}, false);
キャンバス内でマウスが動かされた(mousemove)イベントが発生した時に、この関数が呼ばれます。
まず、キャンバス中の位置をgetMousePositionで取り出します。
キャンバスの左上が(0,0)であるとは限りません。
そこで、キャンバスの大外枠の四角形の位置を取り出します。
var rect = canvas.getBoundingClientRect();
そのイベント(マウスが動いた)が発生した時の、イベントの(x,y)の絶対座標は
evt.clientX
evt.clientY
になるので、キャンバス中の(x,y)座標は
evt.clientX - rect.left
evt.clientY - rect.top
になります。
そこで、キャンバスの位置がスクロールして変わったとしても、マウスのキャンバス内での位置を得る事ができます。
Copyright pirika.com since 1999-
Mail: yamahiroXpirika.com (Xを@に置き換えてください) メールの件名は[pirika]で始めてください。