【问题标题】:Cytoscape disappearing edges with bezier curves and nodes moving/longer labels in nodesCytoscape 消失的边缘,贝塞尔曲线和节点在节点中移动/更长的标签
【发布时间】:2021-06-23 02:03:11
【问题描述】:

我正在使用带有贝塞尔曲线的 cytoscape,但是当节点的标签较长或只是将源节点移动到目标节点旁边时,边缘会消失。

我已经看到“Edge xxxxx 的端点无效,因此无法绘制”警告并搜索了相应的threads,但找不到解决方案。

有人知道怎么处理吗?

【问题讨论】:

  • 1.您不应该在每次调用 2 时创建新的 cytoscape 实例。这似乎与 cytoscape 密切相关。如果拖动“级别 2”,边缘会出现然后消失。这表明 cytoscape.js 内部存在严重问题
  • 感谢 canbax!重新初始化仅用于说明目的。是的,节点拖动也可以重现问题。我也向 cytoscape 提出了问题。目前我正在增加等级分离,但想知道是否有另一种处理方法。

标签: cytoscape.js


【解决方案1】:

我在控制台上看到一些警告

label 的样式值已被 width 弃用

label 的样式值已被 height 弃用

删除'width': 'label', 'height':'label',后,我不再观察到这样的问题。

--- 更新 1.1 ---

但我希望节点的尺寸基于标签的尺寸。

为此,我认为您应该编写一个函数样式。请参见下面的示例。在示例中,您可以看到我们正在根据它们的name 长度动态设置节点的大小。我假设name 是一个存储标签的字符串。

cy.style().selector('node').style({
      'width': (x) => { return x.data('name').length + 'px;' }
      'height': (x) => { return x.data('name').length + 'px;' }
    }).update();

【讨论】:

  • 感谢 canbax!这解决了这个问题,但我希望节点的尺寸基于标签的尺寸。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-19
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 2018-03-10
  • 2011-12-06
相关资源
最近更新 更多