2013-10-13 59 views
1

我想手動設置我的節點的開始位置,但從JSON結構加載它們。如果我把這個位置放在「節點」結構中,它可以工作,但是我試圖 添加一個名爲'positions:'的獨立結構,我認爲它應該起作用?請參閱下面的結構示例。如何使用cy.load設置cytoscape.js中節點的起始位置?

var graphdata = { nodes: [ { data: { id: 'j', name: 'Jerry', width: 20, height: 20 ,  shape: 'rectangle' }}, 
         { data: { id: 't', name: 'Tom', width: 20 , height: 20, shape: 'circle' } }, 
         { data: { id: 'm', name: 'Mary', width: 20 , height: 20, shape: 'circle' } } , 
         { data: { id: 'b', name: 'Bob', width: 20 , height: 20, shape: 'circle' } } ], 

       edges: [ 
         { data: { source: 'j', target: 't', faveColor: '#6FB1FC', strength: 90 } }, 
         { data: { source: 't', target: 'm', faveColor: '#6FB1FC', strength: 90 } }, 
         { data: { source: 'm', target: 'b', faveColor: '#6FB1FC', strength: 90 } } ], 

      positions: [ { j: { x:100,y:100 } }, 
          { t: { x:100,y:200 } } ] 

後來我打電話 cy.load(graphdata)。

節點和邊緣顯示正常,但位置似乎沒有受到任何影響。

我也加載了預設佈局。

謝謝。

回答

4

請問這是Cytoscape Web還是Cytoscape.js?

在Cytoscape.js,

+0

它的Cytoscape.js。我可以指定每個元素的工作位置,但我無法按照上述示例中的操作。 – user1768233

+2

您必須指定每個元素的位置或使用預設佈局。 – maxkfranz

+1

我必須設置佈局屬性以使屬性名稱爲'預設': 佈局:{ name:'preset' }, – Brian