Cytoscape.js - 自定义节点

时间:2017-04-24 12:53:25

标签: javascript svg cytoscape.js

我知道可以将自定义节点样式创建为SVG图像,然后将其设置为节点的背景图像,但由于某种原因,它对我不起作用。这是我的代码:

var cytoscapeStyle = [ // the stylesheet for the graph     
  {
    selector: 'node',
    style: {
      'background-color': 'white',
      'border-width': '6px',
      'label': 'data(id)',
      'background-image': 'node.svg', //doesn't work for some reason. Works when I use a png (e.g. node.png)
      'shape': 'roundrectangle',
      'width': '200px',
      'height': '90px'
    }
  },

  {
    "selector": "node:selected",
    "style": {
      "border-width": "6px",
      "border-color": "#AAD8FF",
      "border-opacity": "0.5",
      "background-color": "#77828C",
      "text-outline-color": "#77828C"
    }
  },

  {
    selector: 'edge',
    style: {
      'width': 3,
      'line-color': '#ccc',
      'target-arrow-color': '#ccc',
      'target-arrow-shape': 'triangle',
      'label': 'data(id)'
    }
  }
];

提前致谢:)

2 个答案:

答案 0 :(得分:0)

将svg(Data uri)放入数据{..}并将background-image设置为data(svg)

stylestuff

{
selector: 'node',
style: {
  'background-image': 'data(svg)'
}

nodestuff

cy.add([
  {
    group: "nodes",
    data: { id: "somenode",
            svg: <image> //eg. "data:image/svg+xml;base64,<data>" 
                         //     or http://some.image.xyz

    }])

答案 1 :(得分:0)

如果你的SVG没有加载,那么SVG图像无效或者没有指定尺寸。