在sgma.js中鼠标悬停使节点的大小加倍

时间:2016-09-16 14:00:25

标签: javascript sigma.js

我很难理解sigma.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();
    })
    }

结果:当我将鼠标悬停在节点上时,该节点保持相同的大小,而所有其他节点缩小到其大小的一半。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为您要求使用autoRescale选项。 https://github.com/jacomyal/sigma.js/wiki/Settings#global-settings