Динамически добавлять узлы при нажатии на существующий узел

Я пытаюсь создать иерархический график (с направлением влево-вправо), используя sigmaJS dagre с 1-го уровня, а затем пользователь может расширить график, нажав на узел. Я прикрепил событие clickNode к графику. Моя проблема в том, что, узел, по которому щелкают, переместит свою позицию, можно ли исправить положение / координату узла

Прикрепленный код, который я попробовал в этом посте.

<div id="container">
  <style>
    #graph-container {
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      position: absolute;
    }
  </style>
  <div id="graph-container"></div>
</div>

g.nodes.push(...............)
g.edges.push(................)

s = new sigma({
  graph: g,
  renderer: {
    container: 'graph-container',
    type: 'canvas'
  },
  settings: {
    minNodeSize: 6,
    maxNodeSize: 6,
    minEdgeSize: 3,
    maxEdgeSize: 3
  }
});
layout();

function layout(){
      dagreListener = sigma.layouts.dagre.configure(s, {
      directed: true, 
      rankdir: 'LR',  
      easing: 'quadraticInOut', 
      duration: 800
    });

    // Bind the events:
    dagreListener.bind('start stop interpolate', function(e) {
      console.log(e.type);
    });

    // Start the DAG layout:
    sigma.layouts.dagre.start(s);
}

s.bind('clickNode', function(e) {
    s.graph.read({nodes: nodes, edges: edges});
    layout();
});

0 ответов

Другие вопросы по тегам