Как скрыть составные узлы при отображении потомков в cytoscape.js - PullRequest
2 голосов
/ 16 апреля 2019

Я хочу создать график, в котором несколько узлов являются «составными» узлами, встраивая несколько дочерних узлов, но не отображая их: дочерние узлы должны отображаться, но составные части должны быть скрыты.

Какlayout Я использую расширение для cytoscape.js, которое называется dagre-cytoscape .

. До сих пор я создал «составной» класс, который есть только у составных узлов, и попытался установить непрозрачность:0 или видимость: скрыто только для этого класса, но каждая из этих опций дочерних узлов также стала невидимой.

Вот корзина нерабочего примера:

<!DOCTYPE html>

<html>

<head>
  <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
  <meta content="utf-8" http-equiv="encoding">
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">

  <title>dagre demo</title>

  <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://cytoscape.org/cytoscape.js-dagre/cytoscape-dagre.js"></script>

  <style>
    body {
      font-family: helvetica;
      font-size: 14px;
    }
    #cy {
      width: 75%;
      height: 100%;
      position: absolute;
      left: 200;
      top: 200;
      z-index: 999;
    }
  </style>

  <script>
    window.addEventListener('DOMContentLoaded', function () {

      var cy = window.cy = cytoscape({
        container: document.getElementById('cy'),

        layout: {
          name: 'dagre'
        },

        style: [{
            selector: 'node',
            style: {
              'background-color': 'teal',
              'label': 'data(id)',
              'visibility': 'visible'
            }
          },
          {
            selector: '.compound',
            style: {
              'visibility': 'hidden'
            }
          }
        ],

        elements: {
          nodes: [{
              data: {
                id: 'n0'
              }
            },
            {
              data: {
                id: 'n1',
                parent: 'parent'
              }
            },
            {
              data: {
                id: 'n2',
                parent: 'parent'
              }
            },
            {
              data: {
                id: 'parent'
              },
              classes: 'compound'
            }
          ],
          edges: [{
              data: {
                source: 'n0',
                target: 'n1'
              }
            },
            {
              data: {
                source: 'n0',
                target: 'n2'
              }
            }
          ]
        }
      });
    });
  </script>
</head>

<body>
  <h1>cytoscape-dagre test</h1>
  <div id="cy"></div>

</body>

</html>

jsbin version

В этом примере узлы n1 и n2 скрыты, а также родительский узел.Я хотел бы, чтобы родитель был скрыт, но n1 и n2 были видимы.

1 Ответ

0 голосов
/ 16 апреля 2019

Попробуйте установить background-opacity и border-width составных узлов на 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...