- From: Karl Dubost <karld@opera.com>
 - Date: Tue, 25 Oct 2011 23:50:18 -0400
 - To: Doug Schepers <schepers@w3.org>, Anne van Kesteren <annevk@opera.com>
 - Cc: www-dom@w3.org
 
I have searched on the list and have found only one thread in 2000 [1] about it.
There is a lack of interoperability for 
    event.layerX / event.offsetX
    event.layerY / event.offsetY
Mozilla and Webkit implements layerX, layerY
https://developer.mozilla.org/en/DOM/event.layerX
https://developer.mozilla.org/en/DOM/event.layerY
Opera and IE implements offsetX, offsetY
http://msdn.microsoft.com/en-us/library/ms534305.aspx
CSSOM is standardizing offsetX, offsetY
http://www.w3.org/TR/cssom-view/#dom-mouseevent-offsetx
digging a bit I found, the hacks that some Web sites rely on
http://my.opera.com/techie-chat/blog/dom-events-portability-not-that-hard
canvas.onmousedown = function (event) {
    var x = event.layerX || event.offsetX;
    var y = event.layerY || event.offsetY;
    alert(x + " " + y);
}
or as explained in 
http://dev.opera.com/articles/view/html5-canvas-painting/
  // Get the mouse position relative to the canvas element.
  if (ev.layerX || ev.layerX == 0) { // Firefox
    x = ev.layerX;
    y = ev.layerY;
  } else if (ev.offsetX || ev.offsetX == 0) { // Opera
    x = ev.offsetX;
    y = ev.offsetY;
  }
[1]: http://lists.w3.org/Archives/Public/www-dom/2000AprJun/0207.html
-- 
Karl Dubost - http://dev.opera.com/
Developer Relations & Tools, Opera Software
Received on Wednesday, 26 October 2011 03:50:50 UTC