Установить z-индекс для меток границ в VisJS

#javascript #vis.js

#javascript #vis.js

Вопрос:

Я работаю над макетом в VisJS, который включает в себя множество узлов. При наведении курсора мыши на края у меня появляется текст, который я хочу отобразить, а затем скрыть при отпуске.

Когда узлы переполнены и пограничные метки пересекаются с ним, они в данный момент отображаются так, что они находятся под узлами, а не над ними. Могу ли я каким-либо образом установить z-индекс пограничной метки, чтобы они отображались поверх узлов, а не под ними?

Я внимательно прочитал документы и не видел ничего, что могло бы изменить положение в z-индексе. приветствуются любые хаки или обходные пути. Спасибо!

рабочий JSFiddle

Мой код visjs:

 const root = document.querySelector('#graph');

const nodeData = [
    {
    type: "A",
    name: 'A Node 1',
    index: 0,
    x: -50,
    y: -50
  },
  {
    type: 'A',
    name: 'A node 2',
    index: 1,
    x: -50,
    y: 50
  },
  {
    type: 'A',
    name: 'A node 3',
    index: 2,
    x: -150,
    y: 50
  },
  {
    type: 'A',
    name: 'A Node 4',
    index: 3,
    x: 50,
    y: 50
  },
  {
    type: 'A',
    name: 'A Node 5',
    index: 4,
    x: -50,
    y: 150
  },
  {
    type: "B",
    name: 'B Node 1',
    index: 5
  },
  {
    type: "B",
    name: 'B Node 2',
    index: 6
  },
  {
    type: 'B',
    name: 'B Node ',
    index: 7
  },
    {
    type: 'B',
    name: 'B Node ',
    index: 8
  },
      {
    type: 'B',
    name: 'B Node ',
    index: 9
  },
      {
    type: 'B',
    name: 'B Node ',
    index: 10
  },
      {
    type: 'B',
    name: 'B Node ',
    index: 11
  },
      {
    type: 'B',
    name: 'B Node ',
    index: 12
  },    {
    type: 'B',
    name: 'B Node ',
    index: 13
  },
];

const edgeData = [
    {from: 0, to: 1},
  {from: 1, to: 2},
  {from: 1, to: 3},
  {from: 1, to: 4},
  {from: 2, to: 5},
  {from: 3, to: 6},
  {from: 4, to: 7},
  {from: 4, to: 8},
  {from: 4, to: 9},
  {from: 4, to: 10},
  {from: 4, to: 11},
  {from: 4, to: 12},
  {from: 4, to: 13},
]

const options = {
    physics: {
      barnesHut: {
        avoidOverlap: 1,
        springConstant: 0.3
      },
      solver: 'hierarchicalRepulsion'
    },
  layout: {
    randomSeed: '0:0'
  }
};

const nodes = new vis.DataSet(nodeData.map(d => {
    const newNode = {
    id: d.index,
    label: d.name,
    fixed: d.type === 'A'
  }
  if (typeof d.x === 'number') {
    newNode.x = d.x;
  }
  
  if (typeof d.y === 'number') {
    newNode.y = d.y;
  }
  
  if(d.type === 'A') {
    newNode.color = 'orange';
    newNode.mass = 3;
  }
  return newNode;
}));
const edges = new vis.DataSet(edgeData.map(e => {
    return {...e, smooth: false, label: 'edge from node to node'}
}));
const network = new vis.Network(root, {nodes, edges}, options);

network.on('stabilizationIterationsDone', () => network.setOptions({physics: false}));