Javascript 在cytoscape中折叠/扩展复合节点
cytoscape.js是否支持折叠/扩展复合节点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(
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的路径前进,并将其附加到单击事件。