Convert screen coordinates into canvas coordinates when dealing with mouse events

This commit is contained in:
Evert Timberg 2015-09-20 17:57:27 -04:00
parent 7d0a7844ea
commit 162aaa993a

View File

@ -642,14 +642,20 @@
boundingRect = canvas.getBoundingClientRect();
if (e.touches) {
mouseX = e.touches[0].clientX - boundingRect.left;
mouseY = e.touches[0].clientY - boundingRect.top;
mouseX = e.touches[0].clientX;
mouseY = e.touches[0].clientY;
} else {
mouseX = e.clientX - boundingRect.left;
mouseY = e.clientY - boundingRect.top;
mouseX = e.clientX;
mouseY = e.clientY;
}
// Scale mouse coordinates into canvas coordinates
// by following the pattern laid out by 'jerryj' in the comments of
// http://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/
mouseX = Math.round((mouseX - boundingRect.left) / (boundingRect.right - boundingRect.left) * canvas.width);
mouseY = Math.round((mouseY - boundingRect.top) / (boundingRect.bottom - boundingRect.top) * canvas.height);
return {
x: mouseX,
y: mouseY