【发布时间】:2018-12-10 16:44:49
【问题描述】:
我正在 vis.js 的网络图中处理节点和边操作。当我进入操作模式以创建、编辑和删除节点时,如何最好地禁用物理?
我已经创建了一个这样的网络:
var nodes = new vis.DataSet([
{id: 1, label: 'Node 1'},
{id: 2, label: 'Node 2'},
{id: 3, label: 'Node 3'},
{id: 4, label: 'Node 4'},
{id: 5, label: 'Node 5'}
]);
// create an array with edges
var edges = new vis.DataSet([
{from: 1, to: 3},
{from: 1, to: 2},
{from: 2, to: 4},
{from: 2, to: 5},
{from: 3, to: 3}
]);
var options = {
interaction: {
hover: true,
navigationButtons: true
},
manipulation: {
enabled: true,
addNode: function(nodeData, callback) {
network.setOptions({
physics: false
});
callback(nodeData);
},
addEdge: function(edgeData, callback) {
network.setOptions({
physics: false
});
callback(edgeData);
},
editNode: function(nodeData, callback) {
network.setOptions({
physics: false
});
callback(nodeData);
},
editEdge: function(edgeData, callback) {
callback(edgeData);
},
}
},
layout: {
improvedLayout: true
},
nodes: {
shape: "dot",
font: {
size: 8
},
size: 5,
},
edges: {
smooth: false
},
physics: {
barnesHut: {
springLength: 40
},
minVelocity: 0.08,
timestep: 0.4
}
};
// create a network
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes,
edges: edges
};
var network = new vis.Network(container, data, options);
我看到vis.js network docs 上有一些操作方法可以在没有 GUI 的情况下调用。我找不到'editModeEnabled' 事件。我希望写一些类似的东西
network.on('editModeEnabled',function(params){
//...disable physics
});
【问题讨论】:
标签: javascript vis.js