如何在JsPlumb中更改源锚起始位置?

时间:2018-06-24 05:24:02

标签: jsplumb

我正在使用jsPlumb开发一个应用程序。当前,如果我创建一个形状,它将把该形状放在画布的左上角。而且,如果我从源连接到目标点,则可以正常工作。

现在,我想在右键单击的位置创建形状,并从源连接到目标。我可以在右键单击的位置创建形状。

但是,如果我从源拖动到目标,则源锚点不是从源开始的。而是从左上角开始。在下面的屏幕截图中,我想从“项目”形状拖到“无状态”形状。

另一件事是,如果我拖动“项目”形状,则端点是从源正确开始的。

enter image description here

1 个答案:

答案 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
        }
    });