イベントの位置を var x = event.clientX ; var y = event.clientY ; でとると、ウインドウのドキュメントを表示している部分の 左上が原点になるので、スクロールするとずれてしまいます。 それに、canvas の左上からの相対座標になりません。 なので、 canvasOffsetX = canvas.offsetLeft; canvasOffsetY = canvas.offsetTop; var x = event.clientX - canvasOffsetX; var y = event.clientY - canvasOffsetY; としたのですが、これだと一番上までスクロールしている 状態ならOKですが、下にスクロールするとずれてしまいます。 それで、次に canvasOffsetX = canvas.offsetLeft; canvas