2015-10-15 180 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