强制链接连接器位于jointjs中单元格的一个位置

时间:2015-07-28 14:47:50

标签: jointjs

如何让链接在1点保持与单元格或端口的连接?

如果端口是一个圆圈,当移动单元格时,连接到它的链接端移过该圆圈。

我希望能够让它保持在同一点 - 圆圈边缘的中心。

所需:

enter image description here

当我移动牢房时发生了什么:

enter image description here

谢谢。

1 个答案:

答案 0 :(得分:1)

如果有人有兴趣,我用以下方法解决了这个问题:

使用2个形状。

  • 端口形状
  • 磁铁,这是一个半径为1的圆(使其成为一个点)

portMarkup:

<g class="port port<%= id %>">
    <path class="port-body port-magnet"/>
    <path class="port-body port-shape"/>
    <text class="port-label"/>
</g>

和属性:

'.outPorts .port-shape': {
    d: circleFromPath(5)
},
'.outPorts .port-magnet': {
    magnet: true
},
'.port-magnet': {
    visibility: 'hidden',
    d: circleFromPath(1),
    transform: 'translate(4, 1)'
}

circleFromPath() ID是一个自定义函数,它接受一个圆参数并返回一个由SVG提供的圆的pathCoffeeScript

circleFromPath = (r = 5) ->
        d = r * 2
        """
            M 0, 0
            m #{-r}, 0
            a #{r},#{r} 0 1,0 #{d},0
            a #{r},#{r} 0 1,0 #{-d},0
        """