如何在火狐中获取鼠标位置
How do I get the mouse position in FireFox?
此代码适用于Google Chrome和IE,但不适用于FireFox。
function drawChildren(names) {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var ctxcolor = "#000000";
if(listeners < 1){
c.addEventListener("click", getPosition, false);
listeners = 1;
} // At the click function "getPosition" is executed
}
function getPosition(event) {
if ( event.offsetX == null ) { // Firefox
clickedX = event.layerX;
clickedY = event.layerY;
} else { // Other browsers
clickedX = event.offsetX;
clickedY = event.offsetY;
}
checkCoordinates(clickedX, clickedY);
}
为了回答您在上述评论中发布的问题,每当单击myCanvas
时都会调用您的function getPosition()
。(因为你的代码说c.addEventListener("click", getPosition, false);
)
使用您的鼠标位置检测代码,我也不确定偏移和分层是如何工作的,但是如果您使用以下代码,那么我知道您将始终从浏览器边缘开始获得x和y坐标,而不是从您网站的任何元素开始:
if(evt.pageX){
var xPos = evt.pageX;
var yPos = evt.pageY;
}else if(evt.clientX){
var xPos = evt.clientX + ((document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft);
var yPos = evt.clientY + ((document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop);
}
您的代码可能会做与此相同的事情,但我只是想提供对我有用的东西:)
相关文章:
- 当鼠标停止或改变方向时获取鼠标坐标
- Javascript如何在不使用画布的情况下获取鼠标位置
- 在火狐浏览器的画布上获取鼠标位置
- 画布:当存在*border*时,获取鼠标坐标
- 试图用jquery工具在覆盖层上获取鼠标悬停
- 如何在Fabric.js上获取鼠标坐标
- 如何在相对定位的元素内获取鼠标的坐标
- 在离子弹出窗口上传递值,但获取鼠标事件
- 如何在 Javascript 中正确获取鼠标位置
- 谷歌地图v3获取鼠标滚轮事件
- 在鼠标按下期间获取鼠标位置
- 如何在火狐中获取鼠标位置
- OpenLayers 3 在选择交互时获取鼠标坐标
- 在 Telerik ASP.Net UI 客户端中,如果我以内联方式附加客户端事件,如何获取鼠标事件对象
- 获取鼠标单击位置坐标
- 使用 d3 获取鼠标点击 svg 的坐标
- 离子和AngularJS - 拖动元素并移动它 - 如何获取鼠标位置
- 如何在Javascript/jQuery中获取鼠标移动事件的开始时间
- 如何在没有JQuery的情况下使用JavaScript正确获取鼠标坐标
- 获取鼠标按下和鼠标移动事件中的鼠标位置