Canvas - Get Mouse Coord on Click
by rasata
HTML
<input id="info" type="text" readonly>
<canvas id="game" width="500" height="500"></canvas>
CSS
canvas, input {
margin: 10px;
text-align: center;
}
JavaScript
var canvas;
var x, y;
var dx=4;
var dy=4;
var d = 20;
var width, height;
function init() {
canvasE = document.getElementById('game');
canvas= canvasE.getContext('2d');
width = canvasE.width;
height = canvasE.height;
x = d+dx+1;
y = d+dy+1;
//canvasE.addEventListener("click", onClick, false);
canvasE.addEventListener("onmousemove", onMouseMove, false);
clear();
}
function drawCircle() {
clear();
canvas.arc(x-1,y-1,d,0,Math.PI*2,true);
canvas.beginPath();
canvas.fillStyle="#0000ff";
// Draws a circle of radius 20 at the coordinates 100,100 on the canvas
canvas.arc(x-1,y-1,d,0,Math.PI*2,true);
canvas.closePath();
canvas.fill();
}
function clear() {
canvas.fillStyle="#ffffff";
canvas.fillRect(0,0,width,height);
canvas.fillStyle="#888888";
canvas.strokeRect(0,0,width,height);
}
function onMouseMove(e){
onClick(e);
}
function onClick(e) {
var element = canvasE;
var offsetX = 0, offsetY = 0
if (element.offsetParent) {
do {
offsetX += element.offsetLeft;
offsetY += element.offsetTop;
} while ((element = element.offsetParent));
}
x = e.pageX - offsetX;
y = e.pageY - offsetY;
drawCircle();
document.getElementById("info").value = "x: " + x + ", y: " + y;
}
init();