【问题标题】:Changing color when node is selected in Cytoscape JS在 Cytoscape JS 中选择节点时更改颜色
【发布时间】:2020-01-27 15:26:27
【问题描述】:

我想将选定节点的颜色更改为与预定义背景颜色不同的颜色。但是,只要我在“样式”中为节点定义了背景颜色,颜色就不会变为蓝色(默认行为)。

这是我定义的样式:

selector: 'node',
style: {
    'content': 'data(d2)',
    'background-color': '#ccc',
}

有人可以帮忙吗? 拉兹鲁

【问题讨论】:

    标签: javascript cytoscape.js cytoscape cytoscape-web


    【解决方案1】:

    这对于 cytoscape.js 来说是一件相当简单的事情,我建议您查看 docs 中提供的一些示例。

    这里的重要部分是 :selected state,如果通过单击选择了任何组件,它就会拥有它。您可以在样式表中解决此状态并添加所需的任何样式。您也可以在cy.on() 上绑定它并使用cy.element(...).style() 添加样式。

    一般来说,我建议在 cytoscape-stylesheet 中添加一个样式:

    var cy = window.cy = cytoscape({
      container: document.getElementById('cy'),
    
      style: [{
          selector: 'node',
          css: {
            'content': 'data(id)',
            'text-valign': 'center',
            'text-halign': 'center',
            'height': '60px',
            'width': '60px'
          }
        },
        {
          selector: ':selected',
          css: {
            'background-color': 'SteelBlue',
            'line-color': 'black',
            'target-arrow-color': 'black',
            'source-arrow-color': 'black'
          }
        }
      ],
    
      elements: {
        nodes: [{
            data: {
              id: 'n0'
            }
          },
          {
            data: {
              id: 'n1'
            }
          },
          {
            data: {
              id: 'n2'
            }
          },
          {
            data: {
              id: 'n3'
            }
          },
          {
            data: {
              id: 'n4'
            }
          },
          {
            data: {
              id: 'n5'
            }
          },
          {
            data: {
              id: 'n6'
            }
          },
          {
            data: {
              id: 'n7'
            }
          },
          {
            data: {
              id: 'n8'
            }
          },
          {
            data: {
              id: 'n9'
            }
          },
          {
            data: {
              id: 'n10'
            }
          },
          {
            data: {
              id: 'n11'
            }
          },
          {
            data: {
              id: 'n12'
            }
          },
          {
            data: {
              id: 'n13'
            }
          },
          {
            data: {
              id: 'n14'
            }
          },
          {
            data: {
              id: 'n15'
            }
          },
          {
            data: {
              id: 'n16'
            }
          }
        ],
        edges: [{
            data: {
              source: 'n0',
              target: 'n1'
            }
          },
          {
            data: {
              source: 'n1',
              target: 'n2'
            }
          },
          {
            data: {
              source: 'n1',
              target: 'n3'
            }
          },
          {
            data: {
              source: 'n2',
              target: 'n7'
            }
          },
          {
            data: {
              source: 'n2',
              target: 'n11'
            }
          },
          {
            data: {
              source: 'n2',
              target: 'n16'
            }
          },
          {
            data: {
              source: 'n3',
              target: 'n4'
            }
          },
          {
            data: {
              source: 'n3',
              target: 'n16'
            }
          },
          {
            data: {
              source: 'n4',
              target: 'n5'
            }
          },
          {
            data: {
              source: 'n4',
              target: 'n6'
            }
          },
          {
            data: {
              source: 'n6',
              target: 'n8'
            }
          },
          {
            data: {
              source: 'n8',
              target: 'n9'
            }
          },
          {
            data: {
              source: 'n8',
              target: 'n10'
            }
          },
          {
            data: {
              source: 'n11',
              target: 'n12'
            }
          },
          {
            data: {
              source: 'n12',
              target: 'n13'
            }
          },
          {
            data: {
              source: 'n13',
              target: 'n14'
            }
          },
          {
            data: {
              source: 'n13',
              target: 'n15'
            }
          },
        ]
      },
    
      layout: {
        name: 'dagre',
        padding: 5
      }
    });
    body {
      font: 14px helvetica neue, helvetica, arial, sans-serif;
    }
    
    #cy {
      height: 100%;
      width: 100%;
      position: absolute;
      left: 0;
      top: 0;
      float: left;
    }
    <html>
    
    <head>
      <script src="https://unpkg.com/cytoscape/dist/cytoscape.min.js"></script>
      <script src="https://unpkg.com/dagre@0.7.4/dist/dagre.js"></script>
      <script src="https://cdn.jsdelivr.net/npm/cytoscape-dagre@2.1.0/cytoscape-dagre.min.js"></script>
    </head>
    
    <body>
      <div id="cy"></div>
    </body>
    
    </html>

    【讨论】:

      猜你喜欢
      • 2020-01-19
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多