Sigma JS节点动画

时间:2013-08-23 13:28:34

标签: javascript sigma.js

我想在Click JS中移动点击事件中的节点。从位置x 0.7到位置x -0.7说。

是否可以在Sigma js中移动节点,如果是,请指导我实现这一点。

2 个答案:

答案 0 :(得分:2)

是的,有可能。我创建了一个jsfiddle,显示如何在鼠标单击时更改节点位置,大小和颜色:

您可以绑定到这样的自定义“downnodes”事件:

sigInst.bind('downnodes',onNodeDown);

事件回调包含一系列选定的节点ID。点击时我不知道什么时候不止一个。也许在复杂图表中缩小时。

使用sigmajs时,一个更微妙的问题是大多数方法(如getNodes)返回克隆,而不是实例本身。这是为了保护我认为的图中的“私有”数据,尤其是初始化后无法重绘的数据。要实际修改属性,需要使用迭代器方法。即便如此,你只能获得克隆。库使用预定义的允许属性列表更新实际节点实例。 (参见graph.js中的checkNode函数)。

设置属性后,您需要刷新/重绘图形。虽然“刷新”方法似乎是一个明显的候选人,但它没有用。我能够使用draw方法重绘它。您需要查看源代码以了解不同的参数。例如:

function onNodeDown(evt) {
    var sigmajs = evt.target;
    var nodeId = evt.content[0];
    sigmajs.iterNodes(function(n){
      n.size = 10;
      n.color = "#0000FF";
    },[nodeId]);    

    sigmajs.draw(2, 2, 2, true);
};

对于更高级的需求,sigmajs网站包含插件示例,显示了获取鼠标事件和动态更新节点的其他方法。一个是鱼眼效果的高级插件示例:

另一个是访问节点属性的示例:

sigmajs文档很薄弱,因此您需要review the source code来理解事物。

答案 1 :(得分:1)

有插件允许从图中移动隔离的节点。 检查

https://github.com/Linkurious/linkurious.js/blob/develop/examples/lasso.html