Vis.js 网络加载完成回调
Vis.js callback when the network finishes loading
我正在使用一个 vis.js 网络,它接收一些数据并将所述数据添加为网络中的节点。
唯一的问题是在声明网络后(使用指定的节点和边,可能很多)网络中的节点需要一段时间才能呈现。
即使我这样声明网络:
var network = new vis.Network(container, data, options);
然后让容器可见:
$('#BreakdownBox').css('display','inline');
在节点完成缓冲之前它仍然可见,显示空白 canvas 直到它们被渲染。
我的问题: 我怎样才能让它在节点加载完成后才可见?
有没有办法使用 promises.js 呢?类似于:
var network = new vis.Network(container, data, options).done(function{
$('#BreakdownBox').css('display','inline');
});
最后我使用原生加载栏来vis.js,使用他们的示例代码here
虽然有点瑕疵,但正是我所需要的。
你可以参考例子visjs loading bar。
你需要监听 "stabilizationIterationsDone" 事件来隐藏你的进度条
network.once("stabilizationIterationsDone", function() {
$('#BreakdownBox').css('display','none');
});
试试这个。您的代码将执行一次,该功能将被删除。由于您的代码绑定到 'afterDrawing' 事件而不是 'stabilizationIterationsDone' 事件,即使您禁用了物理,它也会被执行。
const functionThatDoesWhatYouNeed = () ={
// Your code
network.off('afterDrawing', functionThatDoesWhatYouNeed)
}
network.on('afterDrawing', functionThatDoesWhatYouNeed)
它将函数绑定到 'afterDrawing' 事件并删除自身,这样它就不会执行多次。
我正在使用一个 vis.js 网络,它接收一些数据并将所述数据添加为网络中的节点。
唯一的问题是在声明网络后(使用指定的节点和边,可能很多)网络中的节点需要一段时间才能呈现。
即使我这样声明网络:
var network = new vis.Network(container, data, options);
然后让容器可见:
$('#BreakdownBox').css('display','inline');
在节点完成缓冲之前它仍然可见,显示空白 canvas 直到它们被渲染。
我的问题: 我怎样才能让它在节点加载完成后才可见? 有没有办法使用 promises.js 呢?类似于:
var network = new vis.Network(container, data, options).done(function{
$('#BreakdownBox').css('display','inline');
});
最后我使用原生加载栏来vis.js,使用他们的示例代码here
虽然有点瑕疵,但正是我所需要的。
你可以参考例子visjs loading bar。
你需要监听 "stabilizationIterationsDone" 事件来隐藏你的进度条
network.once("stabilizationIterationsDone", function() {
$('#BreakdownBox').css('display','none');
});
试试这个。您的代码将执行一次,该功能将被删除。由于您的代码绑定到 'afterDrawing' 事件而不是 'stabilizationIterationsDone' 事件,即使您禁用了物理,它也会被执行。
const functionThatDoesWhatYouNeed = () ={
// Your code
network.off('afterDrawing', functionThatDoesWhatYouNeed)
}
network.on('afterDrawing', functionThatDoesWhatYouNeed)
它将函数绑定到 'afterDrawing' 事件并删除自身,这样它就不会执行多次。