• jointjs笔记5-设置线始终指向port上,不会随着方向的变化,而改变终点位置


     效果1

    效果2

    问题:手动连接之后的线是图2的效果,但是这个关系图是根据后端返回数据进行绘制的,所以,总是出现效果1的情况,随着节点的移动,终端连接点位置也是乱动

    解决方法:在生成link中,对source和target的添加port属性(默认是不传这个属性的),代码如下(注意,port属性(仅适用于元素)。使用端口id)

    var link = new joint.shapes.standard.Link({
          source: {
                id: source.id,
                port: "out"  
          },
          target: {
                id: target.id,
                port:"in"
    } });
    "out"/"in",均为创建node时,node上的port的id
    let portObj={
      groups: {
        'in': {
          id:"in",
          position: 'left',
          attrs: {
            circle: {
              magnet: canIn,
              stroke: "#aba7a7",
              fill: "#aba7a7",
              r:10,
              "ref-y":0,
              "stroke-opacity": 0.5
            },
          },
          z: -1 //层级设置
        },
        "out": {
          id:"out",
          position: 'right',
          attrs: {
            circle': {
              magnet:true, //控制改锚点是否可以被连接
              stroke: "#aba7a7",
              fill: "#aba7a7",
              r:10,
              "ref-y":0,
              "stroke-opacity": 0.5
            }
          },
          z: -1
        }
      },
      items: [
        {
          id:"in",
          group: 'in',
        },
        {
          id:"out",
          group: 'out',
        }
      ]
    };
    
    
    var circle = new joint.shapes.standard.Circle({
        id:data.modelId,
        inPorts: ["in"],
        outPorts: ["out"],
        ports: portObj,
        position: data.x?{ x: data.x, y: data.y }:{},
    });
    
    

    jointjs 文档 https://resources.jointjs.com/docs/jointjs/v3.3/joint.html#dia.Link.geometry.source

  • 相关阅读:
    概率论中几个入门公式
    记一道贝叶斯公式的裸题
    BZOJ3585: mex(主席树)
    利用MingW检验程序运行内存
    清北集训Day3T1(转换)
    万能pb_ds头文件—bits/extc++.h
    清北集训Day1T3 LYK loves jumping(期望DP)
    洛谷P1962 斐波那契数列(矩阵快速幂)
    namespace用法
    BZOJ4868: [Shoi2017]期末考试
  • 原文地址:https://www.cnblogs.com/fyjz/p/14481804.html
Copyright © 2020-2023  润新知