以下是我正在做的事情的一个例子:
function showNeighbors(ele) {
cy.add(this.cyData.getElementById(ele.id()).neighborhood());
cy.elements().layout(layoutOpts);
}
这是我可以找到将新节点添加到布局的唯一原因。我想通过使用.enter()函数或某种方式将节点添加到当前布局来添加类似于D3的节点。这在Cytoscape.js中是否可行?
答案 0 :(得分:4)
如果布局支持平滑过渡(如Cola),只需停止旧元素的布局并在整个图形上开始新的布局(包括新元素):layout.stop(); layout = cy.elements().makeLayout(...); layout.run();
http://js.cytoscape.org/#layouts/layout-manipulation
如果布局不支持平滑过渡,那么它仍然可以工作,但动画不一定是平滑的(例如节点可能最初跳转)。