动态处理添加节点的布局(cytoscape.js)

动态处理添加节点的布局(cytoscape.js),cytoscape.js,Cytoscape.js,下面是我正在做的一个例子: function showNeighbors(ele) { cy.add(this.cyData.getElementById(ele.id()).neighborhood()); cy.elements().layout(layoutOpts); } 这就是我能找到将新节点添加到布局的唯一原因。我想通过使用.enter()函数或某种方式将节点添加到当前布局,来添加与D3类似的节点。这在Cytoscape.js中是否可行?如果布局支持平滑转换(如Cola),

下面是我正在做的一个例子:

function showNeighbors(ele) {
  cy.add(this.cyData.getElementById(ele.id()).neighborhood());
  cy.elements().layout(layoutOpts);
}

这就是我能找到将新节点添加到布局的唯一原因。我想通过使用.enter()函数或某种方式将节点添加到当前布局,来添加与D3类似的节点。这在Cytoscape.js中是否可行?

如果布局支持平滑转换(如Cola),只需停止旧元素上的布局,并在整个图形(包括新元素)上启动新布局即可:
layout.stop();layout=cy.elements().makeLayout(…);layout.run()


如果布局不支持平滑过渡,那么它仍然可以工作,但动画不需要平滑(例如,节点最初可能会跳转)。

谢谢!没有意识到可乐支持平稳过渡。我在js.cytoscape.org上看不到这种布局信息,有没有一个地方可以编译这种布局信息?当布局仍在运行时,我无法添加节点,即使使用cola并停止以前的布局。它严重口吃,一点也不顺畅。你有手枪吗?