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

Joh*_*ohn 5 cytoscape.js

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

function showNeighbors(ele) {
  cy.add(this.cyData.getElementById(ele.id()).neighborhood());
  cy.elements().layout(layoutOpts);
}
Run Code Online (Sandbox Code Playgroud)

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

max*_*anz 5

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

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

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

  • 谢谢!没有意识到可乐支持平滑过渡。有没有地方可以编译这种布局信息,因为我在 js.cytoscape.org 上看不到它? (2认同)