我正在开发一个工具来制作区域和绊网,我正在使用Raphael JS。问题是,我想建立一个动态的路径,我想我得到了它,至少在Chrome,因为在Firefox它变得疯狂。
我的意思是疯狂的是,点的位置不符合真实的位置的光标(我重复一遍,只在火狐)。
我在这里做了一个小提琴。
http://jsfiddle.net/6dd2870b/4/
有没有想过为什么会发生这种情况?
先谢谢你了。
fiddle的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;
});
1条答案
按热度按时间kognpnkq1#
我碰巧在Firefox v.113.0.1中再次测试了它,不知何故,它目前正在工作。