【问题标题】:Links between cells are not "flat" - JointJS单元格之间的链接不是“扁平的” - JointJS
【发布时间】:2016-08-25 08:44:23
【问题描述】:

当我拖动“表格”单元格时,大多数情况下连接是平坦的/水平的(例如链接的垂直部分或 ORDERLINE 表格中的一小部分),但有时它们最终位于轻微的角度(链接的左侧)。有没有办法防止这种情况?

如果我检查 devtools 中的元素,它会显示 rotate 有一些小的偏移量,而不是我希望看到的值(即 0、90、180、-90、-180)。当前为链接的左侧呈现的内容的示例:

<path class="marker-source" fill="white" stroke="#c5d8e5" d="M 6 0 L 6 10 M 6 5 L 0 5 z" id="v-29" stroke-width="2" transform="translate(318.204758999181,420.00417997801776) scale(1,1) rotate(2.34686279296875)"></path>

有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: javascript svg jointjs


    【解决方案1】:

    这是manhattan 路由器吗?如果是这样,有一个技巧可以改善这一点。尝试将相同的值设置为 paper.option.gridSizerouter.option.step,如下例所示,设置为 20。

    var paper = new joint.dia.Paper({
        el: document.getElementById('paper'),
        width: 800,
        height: 600,
        gridSize: 20,
        perpendicularLinks: true,
        model: graph,
        defaultLink: new joint.dia.Link({
            router: { name: 'manhattan', args: { step: 20 } },
            connection: { name: 'orthogonal' },
            attrs: {
                '.marker-target': { d: 'M 10 0 L 0 5 L 10 10 z', fill: '#fff', stroke: '#000' },
                '.link-tools .tool-remove circle, .marker-vertex': { r: 8 },
                '.connection': {
                    stroke: '#000', 'stroke-width': 1
                }
            }
        }),
        interactive: {
            vertexAdd: false
        }
    });
    

    【讨论】:

    • 谢谢。是的,它是曼哈顿,它确实回答了我的问题。然而,这个解决方案并不是真正的最佳选择。当我在画布上移动表格时,我不希望它们以 20 步为单位跳跃,因为这感觉很笨重。我希望它平滑,但我希望线条也能平滑。不过,目前看来这可能是不可能的..
    • 你会减少 gridSizestep,20 确实很多
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 2016-12-20
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多