我正在使用 vis.js 库来创建网络拓扑。在我使用以下方法创建网络后:
network = new vis.Network(container, data, options);
Run Code Online (Sandbox Code Playgroud)
其中容器是canvas我正在绘制的。
数据 :
{
nodes: Nodes,
edges: Edges
};
Run Code Online (Sandbox Code Playgroud)
选项 :
{
autoResize: true,
nodes: {
shape: 'image',
size: 25,
font: {
size: 16,
color: 'darkbrown'
},
borderWidth: 0,
shadow: true
},
edges: {
smooth: {
forceDirection: "none"
}
},
physics: {
forceAtlas2Based: {
springLength: 80,
springConstant: 0.27
},
minVelocity: 0.75,
solver: "forceAtlas2Based",
timestep: 0.34
},
layout: {
randomSeed: undefined
},
interaction: {
hover: true
}
}
Run Code Online (Sandbox Code Playgroud)
绘制后,默认比例(1)相对于我的画布非常大。我想调整比例。我试过这种方式:
network …Run Code Online (Sandbox Code Playgroud) 我有一个要求,我需要重复调用一个调用 setInterval 的函数。我遇到的问题是,如果生成一个函数(比如每 1 秒)并且使用 setInterval 设置它;如果我们调用 setInterval 两次/多次而函数之间没有 clearInterval,则函数会继续调用自身。前任 :
<!DOCTYPE html>
<html>
<body>
<p>A script on this page starts this clock:</p>
<p id="demo"></p>
<button onclick="myStartFunction()">Start time</button>
<button onclick="myStopFunction()">Stop time</button>
<script>
var myVar;
function myStartFunction(){
myVar = setInterval(function(){ myTimer() }, 1000);
}
function myTimer() {
var d = new Date();
var t = d.toLocaleTimeString();
document.getElementById("demo").innerHTML = t;
}
function myStopFunction() {
console.log(myVar);
clearInterval(myVar);
console.log(myVar);
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我单击“开始时间”按钮两次,中间没有单击“停止时间”,则该功能不会停止。这只是场景的一个例子。无论如何要解决这个问题?