координаты DOM узла и координаты холста различны - PullRequest
0 голосов
/ 06 марта 2020

Я считаю, что координаты DOM узла и координаты холста различны в vis-сети. На диаграмме А есть 4 узла. Затем удалите один узел и создайте диаграмму B с теми же параметрами, что и у A. Расположение трех узлов на диаграмме B отличается от трех узлов на диаграмме A. Я считаю, что они имеют одинаковый холст координаты и различные координаты DOM. Я хочу, чтобы они имели одинаковую координату DOM и холст. Есть демо. Когда щелкните правой кнопкой мыши диаграмму, удалите узел. Изменение местоположения остальных узлов.

<!doctype html>

<title>Network</title> <script type="text/javascript" src="https://unpkg.com/vis-network/standalone/umd/vis-network.min.js"></script> <style type="text/css"> #mynetwork { width: 600px; height: 400px; border: 1px solid lightgray; } </style>
<script type="text/javascript"> // create an array with nodes var nodes = [];
// create an array with edges
var edges = [];

// create a network
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes,
edges: edges
};
var options = {
autoResize: false,
width: '100%',
height: '100%',
physics: {
enabled: false
},
interaction: {
zoomView: false,
dragView: false
},
layout: {
improvedLayout: false
}
};
var network = new vis.Network(container, data, options);
nodes = [
{id: 1, label: 'device1', x: 50, y: 50, physics: false},
{id: 2, label: 'device2', x: 70, y: 70, physics: false},
{id: 3, label: 'device3', x: 90, y: 90, physics: false},
{id: 4, label: 'device4', x: 110, y: 110, physics: false}
];
var newData = {nodes, edges};
network.setData(newData);
network.on('oncontext', function(params) {
params.event.preventDefault();
console.log('params', params);
nodes.splice(0, 1);
console.log('nodes', nodes);
network.setData({nodes, edges});
});
network.on('stabilizationIterationsDone', function() {
options = {
physics: {
enabled: false
}
};
network.setOptions(options);
});
</script>
...