2015-10-15 182 views
2

下面是我在做什么的例子:布局,处理动态地添加节点(cytoscape.js)

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

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

回答

3

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

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

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

+0

谢谢!没有意识到可口可乐支持平稳过渡。是否有这样的布局信息编译的地方,因为我没有在js.cytoscape.org上看到它? – John

+0

在布局仍在运行时,即使使用可乐和停止以前的布局,我也无法添加节点。它严重口吃,根本不流畅。你有jsfiddle吗? – felixfbecker

+0

http://js.cytoscape.org/demos/colajs-graph/ – maxkfranz