2016-09-16 102 views
0

我有點難以理解sigma.js如何處理節點和邊的大小。在sgma.js中將節點的大小增加一倍大小

我得知您在圖表設置中設置了minNodeSizemaxNodesSize。然後根據節點的個人大小以及圖形的縮放級別分配實際顯示大小。正確?

我想要實現的是一個節點在mouseOver上將其大小加倍,並在mouseOut上縮回到原始大小。這裏是我的代碼:

var minNodeSize = 1; 
var maxNodeSize = 5; 

sigma.parsers.json('giantComponent.json', { 
     container: 'graph', 
     settings: { 
     minNodeSize: minNodeSize, 
     maxNodeSize: maxNodeSize 
     } 

     //Assign same size to all nodes 
     var s = sigma.instances()[0]; 
     var nodes = s.graph.nodes(); 
     nodes.forEach(function (n) { 
      n.size= maxNodeSize/2; 
     }) 
    } 
    ); 

//Function to change a nodes size on mouseOVer 
function interactiveNodes() { 
    var s = sigma.instances()[0]; 
    var nodes = s.graph.nodes(); 
    s.bind('overNode', function (d) { 
     d.data.node.size = maxNodeSize; 
     s.refresh(); 
    }) 
    s.bind('outNode', function (d) { 
     d.data.node.size = maxNodeSize/2; 
     s.refresh(); 
    }) 
    } 

結果:當我將鼠標懸停在該節點保持相同的大小,而所有其他節點縮小到一半大小的節點上。

任何想法?

回答