Я пытаюсь создать иерархический график (с направлением влево-вправо), используя сначала 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();
});