使用Javascript鼠标事件返回HTML5画布上鼠标点击的坐标
Return coordinates of mouse click on HTML5 canvas using Javascript mouse events?
查看此站点上的代码
我想返回鼠标点击/移动相对于html5画布的相对坐标。下面的代码是什么意思?
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.layer Y为0,我们的意思是什么。。。我的意思是event.layerX返回鼠标单击w.r.t画布的相对坐标。那么,这有什么意义呢?
更好的方法是这样的代码:
if ( event.offsetX == null ) { // Firefox
mouseX = event.originalEvent.layerX;
mouseY = event.originalEvent.layerY;
} else { // Other browsers
mouseX = event.offsetX;
mouseY = event.offsetY;
}
它很快,正确,并且
event.layerX和event.layerY在WebKit中已损坏并已弃用。它们将在不久的将来从发动机上拆下。
对于鼠标坐标(123,12),event.layerX || event.layerX == 0
将在语句的第一部分(event.layerX
)中为TRUE,而第二部分(event.layerX == 0
)将不会被检查。
如果event.layerX是undefined
(因为我们使用Opera),event.layerX || event.layerX == 0
的第一部分将给我们FALSE,第二部分将不会被检查。
但还有一种可能性。鼠标坐标可能是(0123),event.layerX || event.layerX == 0
的第一部分会给我们FALSE,而这些坐标是完全有效的。这就是为什么第二部分event.layerX == 0
将返回TRUE,因此if语句将被求值。
相关文章:
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- AngularJS-如何在mousemove上存储鼠标坐标
- 当鼠标停止或改变方向时获取鼠标坐标
- 将鼠标坐标保存在阵列中
- 如何以百分比计算鼠标坐标 javascript
- 画布:当存在*border*时,获取鼠标坐标
- 如何在Fabric.js上获取鼠标坐标
- Javascript/Canvas-查找相对于坐标网格位置的鼠标坐标
- 获取画布中图像内的鼠标坐标
- HTML5画布绘图应用程序中的鼠标坐标漂移
- 画布 - 在调整窗口大小时转换鼠标坐标
- 滚动弄乱了我的画布鼠标坐标 - Javascript Telerik Mobile
- 在视频元素上获取准确的鼠标坐标
- DIV - JavaScript 中的相对鼠标坐标
- 如何将 JS 鼠标坐标获取到 PHP 插入查询中
- 获取每次点击的鼠标坐标
- OpenLayers 3 在选择交互时获取鼠标坐标
- Javascript鼠标坐标没有事件
- D3:跟随鼠标坐标
- 如何在卸载之前保存鼠标坐标