Javascript Raphael Path在Firefox中变得疯狂
我正在开发一个工具来制作区域和Tripwire,我正在与Raphael JS合作。问题是,我想建立一个友好的路径,我想我得到了它,至少在Chrome中,因为在Firefox中它变得疯狂 疯狂的意思是,点的位置与光标的实际位置不一致(我重复一遍,仅在Firefox中) 你有我在这里做的小提琴 有没有想过为什么会发生这种情况 先谢谢你 小提琴的javascript代码是: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
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中传递。