@antv/x6 利用interacting方法来设置禁止结点移动的方法实现。

1、官网有个设置说明。

https://x6.antv.antgroup.com/api/graph/graph

2、然后有可行的方法一:

let graph = new Graph({
      container: document.getElementById('container'),
      interacting: function (cellView) {
        if (cellView.cell.getData() != undefined && !cellView.cell.getData().disableMove) {
          return { nodeMovable: false };
        }
        return true;
      },
      grid: true,
      panning: {
        enabled: true,
        modifiers: 'shift',
      },
...
}

这里最主要是这段代码:

interacting: function (cellView) {
        if (cellView.cell.getData() != undefined && !cellView.cell.getData().disableMove) {
          return { nodeMovable: false };
        }
        return true;
      },

2.1、最后我们在增加节点的时候,加入下面代码:

nodes.push({
            shape: 'custom-node',
            x: item.x,
            y: item.y,
            id: item.id,
            width: item.size,
            height: item.sizeh,
            data: {
              disableMove: false, //true为可拖拽,false不可拖拽
            },
....
});
data: {
              disableMove: false, //true为可拖拽,false不可拖拽
            },

3、另一种方法:

interacting(cellView) {
        // if (cellView.cell.getData() != undefined && !cellView.cell.getData().disableMove) {
        return { nodeMovable: false };
        // }
        // return true;
      },

只要加上将第一种方法中的几行注掉,就可以了。

参考:

解决 antv x6 配置了限制节点、边移动不生效问题_antvx6设置节点禁止拖动,禁止改变大小-CSDN博客

antv x6控制每个图元是否可拖拽_antv x6 禁止拖拽-CSDN博客

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值