【问题标题】:Getting mouse coordinates in firefox 41在 Firefox 41 中获取鼠标坐标
【发布时间】:2015-12-26 15:41:36
【问题描述】:

我正在尝试根据鼠标坐标拖放元素。它在 chrome 和 IE 中运行良好,但在 Firefox 中无法运行。

以下是我尝试过的:

function createShape(event)
{
    var stageContainer = $(".mainArea");
    var stageOffset = stageContainer.offset();
    clientX = event.clientX;
    clientY = event.clientY;
    offsetX = stageOffset.left;
    offsetY = stageOffset.top;
    x = clientX - offsetX; // works in chrome and IE
    y = clientY - offsetY; // works in chrome and IE

    //Firefox
    var offX = (event.offsetX || event.pageX - $(event.target).offset().left);
    var offY = (event.offsetY || event.pageY - $(event.target).offset().top);
    layerX = event.layerX;
    layerY = event.layerX;
    screenX = event.screenX;
    screenY = event.screenY;
    pageX = event.pageX;
    pageY = event.pageY;
    e = jQuery.event.fix(event);
    var target = event.target || event.srcElement;

    //Right now this is working but x and y are not exactly correct
    x = screenX + offsetX
    y = screenY + offsetY

在 Firefox 中不起作用

ClientXY return 0,0
LayerXY return largest number like 173839,173839
pageX and pageY returns 0,0
element.offset().left returns 70 always
element.offset().top returns 63 always

createRect(x, y); // creating element on dragend with x and y coordinates on dragend

}

如何获得拖动结束鼠标坐标?

【问题讨论】:

    标签: javascript jquery firefox drag-and-drop mouse-coordinates


    【解决方案1】:

    遗憾的是,Firefox 不会在 drag 事件上填充 pageXpageY 属性。相关的bug report 于 2009 年开放,看起来不会很快得到修复。常见的解决方案是在父元素上listen for dragover事件(虽然它很难检测到哪个元素被拖动)或者检测被拖动元素的位置in some other way

    【讨论】:

    • 我认为您在链接中提供的解决方案在最新的 Firefox 中不起作用
    猜你喜欢
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2018-01-15
    • 1970-01-01
    相关资源
    最近更新 更多