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

Layout that handles adding nodes dynamically (cytoscape.js)

这是我正在做的一个例子:

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

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

如果布局支持平滑过渡(如可乐),只需停止旧元素的布局并在整个图形(包括新元素)上开始新布局:layout.stop(); layout = cy.elements().makeLayout(...); layout.run();

http://js.cytoscape.org/#layouts/layout-manipulation

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