cytoscape js,如何用json数据文件定义带有background-image的节点

问题描述 投票:0回答:1

我想使用cytoscape librairy来构建示例图,但我希望在每个节点上显示不同的图像。

我试过了:

[ 
  {
    "data": [
      "id0"
    ],
    "position": {
      "x": 44,
      "y": 93
    }
  },
  {
    "data": [
      "id1"
    ],
    "position": {
      "x": 77,
      "y": 200
    },
    "background-image": [
      "https://upload.wikimedia.org/wikipedia/commons/b/b4/High_above_the_Cloud_the_Sun_Stays_the_Same.jpg",
      "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Pigeon_silhouette_4874.svg/1000px-Pigeon_silhouette_4874.svg.png"
    ],
    "background-fit": "cover cover",
    "background-image-opacity": 0.5
  }
]

但是当我加载页面时,我看到两个“空”节点。我用过这个javascript脚本:

fetch('data.json', {mode: 'no-cors'})
  .then(function(res) {
    return res.json()
  })
  .then(function(data) {
    var cy = window.cy = cytoscape({
      container: document.getElementById('cy'),

      layout: {
        name: 'preset',
      },

      style: [
        {
          selector: 'node',
          style: {
            'height': 20,
            'width': 20,
          }
        }
      ],

      elements: data
    });
  }); 

我的错误在哪里?如何在每个节点上生成具有不同背景图像的图形?

谢谢 :)

json graph cytoscape.js
1个回答
1
投票

这是我的解决方案:https://plnkr.co/edit/lKjxkMS8F1E68Mk70fjS?p=preview

重要的是设置为#cy的css。

#cy {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
}

编辑:这是正确的 - > https://plnkr.co/edit/lKjxkMS8F1E68Mk70fjS?p=preview

它必然是“背景图像”换行标签“样式”。

"style": {
  "background-image": [
    "https://upload.wikimedia.org/wikipedia/commons/b/b4/High_above_the_Cloud_the_Sun_Stays_the_Same.jpg",
    "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Pigeon_silhouette_4874.svg/1000px-Pigeon_silhouette_4874.svg.png"
  ],
  "background-fit": "cover cover",
  "background-image-opacity": 0.5
}
© www.soinside.com 2019 - 2024. All rights reserved.