Javascript Raphael Path在Firefox中变得疯狂

Javascript Raphael Path在Firefox中变得疯狂,javascript,jquery,firefox,path,raphael,Javascript,Jquery,Firefox,Path,Raphael,我正在开发一个工具来制作区域和Tripwire,我正在与Raphael JS合作。问题是,我想建立一个友好的路径,我想我得到了它,至少在Chrome中,因为在Firefox中它变得疯狂 疯狂的意思是,点的位置与光标的实际位置不一致(我重复一遍,仅在Firefox中) 你有我在这里做的小提琴 有没有想过为什么会发生这种情况 先谢谢你 小提琴的javascript代码是: var canvas = document.getElementById('canvas'), paper = new

我正在开发一个工具来制作区域和Tripwire,我正在与Raphael JS合作。问题是,我想建立一个友好的路径,我想我得到了它,至少在Chrome中,因为在Firefox中它变得疯狂

疯狂的意思是,点的位置与光标的实际位置不一致(我重复一遍,仅在Firefox中)

你有我在这里做的小提琴

有没有想过为什么会发生这种情况

先谢谢你

小提琴的javascript代码是:

var canvas = document.getElementById('canvas'),
    paper = new Raphael(canvas, canvas.height, canvas.width),
    mousedown = false,
    lastX, lastY, path, pathString, pathAux, pointsAux = [];    


$(canvas).mousedown(function (e) {
   var x = e.offsetX,
       y = e.offsetY;

    if (!mousedown) {
        pathString = 'M ' + x + ' ' + y + ' ';
        mousedown = true;
    } else {
        pathString += 'l ' + (x - lastX) + ' ' + (y - lastY) + ' ';
    }

    pointsAux.push({x: x, y: y});

    path = paper.circle(x,y,9);

    path = paper.path(pathString);   

    lastX = x;
    lastY = y;
});

$(canvas).mousemove(function (e) {

    if (!mousedown) {
       return;
    }

    var x = e.offsetX,
        y = e.offsetY;
    pathAux = pathString +  'l ' + (x - lastX) + ' ' + (y - lastY);
    path.attr('path', pathAux);
});

$('#finish').click(function (e) {

    if ($('#type').val() != 1) {
        pathAux = pathString +  ' z';
        path.attr('path', pathAux);
    } else {
        path.attr('path', pathString);
    }
    mousedown = false;

 });

 $('#cancel').click(function (e) {
     paper.clear();  
     mousedown = false;
  });

哇,真奇怪。我不知道是什么引起的,我知道。这可能是因为offsetX或offsetY在firefox中不能正常工作造成的吗?不管怎样,如果用layerX和layerY试过,但还是一样。是的……我不知道问题出在哪里。我怀疑这是补偿,因为Firefox所做的“错误”似乎是随机的和武断的,有时只是一点点,有时是很多。有时这条线会闪烁。然后,当我单击时,直线指向正确的位置,圆圈指向错误的位置!我会使用Raphs自己的mousemove方法,因为它们在正确的坐标iirc中传递。