Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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 在cytoscape中折叠/扩展复合节点_Javascript_Collapse_Expand_Cytoscape.js - Fatal编程技术网

Javascript 在cytoscape中折叠/扩展复合节点

Javascript 在cytoscape中折叠/扩展复合节点,javascript,collapse,expand,cytoscape.js,Javascript,Collapse,Expand,Cytoscape.js,cytoscape.js是否支持折叠/扩展复合节点 Eg. before collapsing node1 (-) --node1.1 --node1.2 ------node1.2.1 崩溃后 node1 (+) 用(+)或(-)符号表示展开/折叠会很好 正在寻找使用复合节点将一组节点分组并通过用户交互折叠/展开的选项。如果cytoscape.js默认情况下不支持此功能,那么实现此目标的任何替代方案/解决方法?使用API相对简单 折叠:node1.subjects().addClass(

cytoscape.js是否支持折叠/扩展复合节点

Eg. before collapsing

node1 (-)
--node1.1
--node1.2
------node1.2.1
崩溃后

node1 (+)
用(+)或(-)符号表示展开/折叠会很好


正在寻找使用复合节点将一组节点分组并通过用户交互折叠/展开的选项。如果cytoscape.js默认情况下不支持此功能,那么实现此目标的任何替代方案/解决方法?

使用API相对简单

折叠:
node1.subjects().addClass('collapsed-child')

展开:
node1.subjects().removeClass('collapsed-child')

。。。其中
。折叠的子项{opacity:0;}


您可能还希望更改子体的位置,以便父节点更小。或者,如果您不想看到折叠子节点的边缘,您可以使用
display:none
来显示
。折叠子节点

对于其他在Cytoscape.js中寻找移除节点及其子节点问题的解决方案的人,我尝试了,但失败了(承认是过时的)接受答案中的解决方案:
.subjections()

在等待GitHub的响应时

我设计了以下解决方案。简而言之,我:

  • 使用
    .successivers()
    而不是
    .dependents()
    (以上建议)
  • 将数据保存在变量中;然后,恢复这些数据
  • 无需使用
    .addClass()
var myNode=cy.elements('node[name=“Technology”]”);
//cy.collection():返回新的空集合
// https://js.cytoscape.org/#cy.collection
var myCollection=cy.collection();
setTimeout(函数(){
console.log('删除“技术”节点+子体…')
//保存数据以备以后调用:
// https://js.cytoscape.org/#cy.remove
myCollection=myCollection.union(myNode.successivers().targets().remove());
myNode.successivers().targets().remove();
//嵌套的setTimeout():
setTimeout(函数(){
console.log('正在恢复“技术”节点+子体…')
myCollection.restore();
console.log('Done!')
}, 2000);
}, 2000);

谢谢你的回答。需要测试一下。由于必须将子体边移动到初始节点,因此我沿着写入expandNodes/shrinkNodes的路径前进,并将其附加到单击事件。