我正在使用Fabric.js做反应,我在其上实现了一些工具。 以下是它的外观:
但是有一个平移工具,我正在使用fabric的relativePan()
函数。我遇到的一个问题是,使用平移工具拖动时,标尺(标有红色)不应该移动。
它们也是画布的一部分,与其他元素一样。
有没有办法禁用某些元素的平移?我试过了:
lockMovementX
lockMovementY
selectable: false
答案 0 :(得分:1)
诀窍是在平移时从静止物体中减去移动坐标:
canvas.on('mouse:move', function(e) {
if (panning && e && e.e) {
moveX = e.e.movementX;
moveY = e.e.movementY;
topRuler.set({
top: topRuler.top - moveY,
left: topRuler.left - moveX
});
leftRuler.set({
top: leftRuler.top - moveY,
left: leftRuler.left - moveX
});
canvas.relativePan(new fabric.Point(moveX, moveY));
}
});
这是一个有效的JSFiddle,https://jsfiddle.net/rekrah/z3p8utmc/。