jsPlumb - 使用单个端点为源和目标绘制多个连接

时间:2017-07-26 11:37:34

标签: javascript svg jsplumb

我正在尝试使用一个端点创建从源到目标的多个连接。

基本上,当用户尝试从源重新绘制到同一节点的第二条路径时,连接源和目标的路径应该拆分并在单个端点重新加入。此外,每个连接都会附加一个标签。

这样图表看起来就像是一条单行分成往返同一端点的路径数。

像图像中附带的东西。

我只是想知道是否可以使用社区版本实现这一目标,还是应该使用JSPlumb的付费版本? Something like the one attached in the image

提前致谢, 巴拉吉

1 个答案:

答案 0 :(得分:0)

为端点建模 - 连接的一端。 Endpoint有一个底层Anchor,它决定了Endpoint的位置。每个端点可以有1到maxConnections连接(将maxConnections设置为-1以允许无限制连接;默认值为1)。

http://jsfiddle.net/dL1ua517/

HTML

<div id="item_input" class="itemin">PROJECT NAME</div>
<div class="down">
    <div id="downstream_1" class="ds">Output 1</div>
    <div id="downstream_2" class="ds">Output 2</div>
    <div id="downstream_3" class="ds">Output 3</div>
</div>

CSS

.item {
    height:80px;
    width: 80px;
    border: 1px solid blue;
    float: left;
}
.ds {
    width:100px;
    height:100px;
    border:1px solid brown;
    float:left;
    margin-left:50px;
}
.down{
    width:100%;
    height:auto;
    float:left;
}
.itemin{
    margin-top:150px;
    margin-bottom:100px;
    border:2px pink solid;
    width:100px;
    height:100px;
    float:left;
}

的Javascript

jsPlumb.ready(function () {

    /*Second Instance*/
    var instance = jsPlumb.getInstance();
    instance.importDefaults({
        Connector: ["Bezier", {
            curviness: 150
        }],
        Anchors: ["BottomCenter", "TopCenter"]
    });

    instance.connect({
        source: "item_input",
        target: "downstream_1",
        scope: "someScope"
    });
    instance.connect({
        source: "item_input",
        target: "downstream_2",
        scope: "someScope"
    });
    instance.connect({
        source: "item_input",
        target: "downstream_3",
        scope: "someScope"
    });
});