我正在使用jsPlumb开发一个应用程序。当前,如果我创建一个形状,它将把该形状放在画布的左上角。而且,如果我从源连接到目标点,则可以正常工作。
现在,我想在右键单击的位置创建形状,并从源连接到目标。我可以在右键单击的位置创建形状。
但是,如果我从源拖动到目标,则源锚点不是从源开始的。而是从左上角开始。在下面的屏幕截图中,我想从“项目”形状拖到“无状态”形状。
另一件事是,如果我拖动“项目”形状,则端点是从源正确开始的。
答案 0 :(得分:0)
我发现了问题。之前,代码中的if块(1)低于代码(2)。这就是为什么即使以为形状已移动到新位置,锚的起始位置也没有移动的原因。一旦将if块(1)移到(2)之上,jsPlumb就会了解形状的位置以及锚点的起点位置。
因此,如果要移动形状,则应在将形状位置告知Jsplumb之前进行此操作。
if (!!shape.location) { ------------------------------------> 1)
domEl.style.left = shape.location.left + 'px';
domEl.style.top = shape.location.top + 'px';
}
this.jsPlumbInstance.draggable(domEl, {
// to contain the shape within the canvas
// containment: true
});
this.jsPlumbInstance.makeSource(domEl, { ----------------------2)
filter: '.cp',
anchor: ['AutoDefault'],
connectorStyle: {
stroke: '#181919',
strokeWidth: 2,
outlineStroke: 'transparent',
outlineWidth: 4
}
});