d3.js 中计时器运行时是否可以改变时间间隔?

我希望能够调整回调之间的时间间隔。我按以下方式使用 d3 的间隔:

let timeInterval = 500;
d3.interval(callback, timeInterval);

现在,在执行过程中的某个时刻,我希望能够调整 timeInterval 的值(通过用户输入)并将其反映在后续回调执行的速度中。这可能吗?如果可能的话,如何实现?


慕哥6287543
浏览 201回答 2
2回答

BIG阳

更改间隔行为(包括其计时)的最简单方法是调用.restart()其方法。由于 ad3.interval()只是一个d3.timer()定期执行的包装,它也具有上述.restart()方法。# 计时器。重新启动(回调[,延迟[,时间]])<>使用指定的回调和可选的延迟和时间重新启动计时器。这相当于停止此计时器并使用指定参数创建一个新计时器,尽管此计时器保留了原始调用优先级。这可以按照以下方式完成:const callback = console.log;const interval = d3.interval(callback, 500);  // initial timing 500msinterval.restart(callback, 1000);             // updated timing 1000ms<script src="https://d3js.org/d3.v6.js"></script>

收到一只叮咚

d3.interval()显然返回创建的计时器对象。您可以停止旧计时器并启动新计时器:var intervalTimer;// ... other code ...intervalTimer = d3.interval(callback, 500);// ... other code ...intervalTimer.stop();intervalTimer = d3.interval(callback, 100);// ...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript