javascript - 使用 Javascript 鼠标事件返回鼠标在 HTML5 Canvas 上单击的坐标?

标签 javascript html mouseevent html5-canvas

请参阅 this site 上的代码

我想返回鼠标点击/移动相对于 html5 Canvas 的相对坐标。下面的代码是什么意思?

if ( event.layerX ||  event.layerX == 0) { // Firefox
            mouseX = event.layerX ;
            mouseY = event.layerY;
} else if (event.offsetX || event.offsetX == 0) { // Opera
            mouseX = event.offsetX;
            mouseY = event.offsetY;
}

layerX 适用于除 Opera 之外的所有浏览器。 offsetX 适用于除 Firefox 之外的所有浏览器

那么,如果 event.layerX 或 event.layerY 为 0,我们的意思是什么... 我的意思是 event.layerX 返回鼠标点击 w.r.t Canvas 的相对坐标。那么这有什么意义呢?

最佳答案

更好的方法是这样的代码:

if ( event.offsetX == null ) { // Firefox
   mouseX = event.originalEvent.layerX;
   mouseY = event.originalEvent.layerY;
} else {                       // Other browsers
   mouseX = event.offsetX;
   mouseY = event.offsetY;
}

很快,正确的,并且

event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future.

关于javascript - 使用 Javascript 鼠标事件返回鼠标在 HTML5 Canvas 上单击的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8878471/

相关文章:

javascript - 如何滚动到 ng-template 中的 div?

html - 如何在html css中将滚动条添加到父div?

event-handling - Vue.js - 使用鼠标单击向下(而不是向上)的事件处理

javascript - 从其他组件使用 setState 调用函数

javascript - React JS 'propTypes' 验证器运行两次

JavaScript 无法在 XAMPP 中运行

javascript - 安卓浏览器输入类型号

html - 使用 HTML5 视频标签播放视频

java - 未触发 MAC OS X Java Swing Mouse Released 事件

javascript - 当光标拖动到 div 上时,我应该使用什么鼠标/触摸事件来使 div 改变颜色?