我想在Click JS中移动点击事件中的节点。从位置x 0.7到位置x -0.7说。
是否可以在Sigma js中移动节点,如果是,请指导我实现这一点。
答案 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