Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sigma JS节点动画_Javascript_Sigma.js - Fatal编程技术网

Javascript Sigma JS节点动画

Javascript Sigma JS节点动画,javascript,sigma.js,Javascript,Sigma.js,我想在单击事件时移动Sigma JS中的节点。从位置x 0.7到位置x-0.7 是否可以在Sigma js中移动节点,如果可以,请指导我实现这一点 是的,这是可能的。我创建了一个JSFIDLE,显示如何在鼠标单击此处时更改节点位置、大小和颜色: 您可以像这样绑定到自定义“downnodes”事件: sigInst.bind('downnodes',onNodeDown); 事件回调包含选定节点ID的数组。我不知道当点击的时候什么时候会不止一个。可能是在复杂图形中缩小时 使用sigmajs

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


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

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

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

sigInst.bind('downnodes',onNodeDown);
事件回调包含选定节点ID的数组。我不知道当点击的时候什么时候会不止一个。可能是在复杂图形中缩小时

使用sigmajs时一个更微妙的问题是,大多数方法(如getNodes)返回克隆,而不是实例本身。我认为这是为了保护图中的“私有”数据,尤其是初始化后无法重新绘制的数据。要实际修改属性,需要使用迭代器方法。即使这样,你也只能得到克隆人。库使用预定义的允许属性列表更新实际节点实例。(请参见中的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文档很弱,因此您需要了解一些事情

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


这个答案是为sigma.js的v0.1版本编写的。随后的版本已经显著地改变了接口,这段代码不再是替代品。它可能与较新版本根本不相关。您是否能够为较新版本的sigma.js更新代码?我感兴趣的是能够通过点击按钮上下移动整个图形。看看我的问题:你确定它工作正常吗?我尝试了chrome和firefox,结果是空白的。根据前面的评论,这是一个相对较旧的答案,sigma.js从此发生了显著的变化。如果在运行JSFIDLE时打开浏览器的控制台日志窗口,您将看到对旧sigma.js文件的引用不再正确。您可能想在sigma.js github存储库中查看更新的示例。i、 e.“单击时添加节点”