d3.js 如何将动态延迟传递给d3.interval

yqhsw0fo  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(169)

d3.interval采用两个参数callback and delay,例如d3.interval(callback, delay)

我想知道是否有可能为每个间隔传递一个动态延迟。
例如,在下面的例子中,我要求interval1000ms的延迟运行,但是有没有办法让d3.interval分别以0ms, 1000ms, 2000ms, 3000ms的延迟运行,间隔为# 1,2,3,4
我尝试了类似desiredDelay[counterF],但它没有工作。
第一个

ttygqcqt

ttygqcqt1#

简短回答:你不能这样做。
如果您查看source code,您会发现如果延迟不是null ...

if (delay == null) return t.restart(callback, delay, time), t;

...将使用一元加号运算符强制转换为数字:

t.restart = function(callback, delay, time) {
    delay = +delay,
    etc...

你能做的是创建你自己的区间函数,这超出了这个答案的范围。

jbose2ul

jbose2ul2#

以下代码改编自this,可根据需要工作,并将与d3.timeout一起使用。
第一个

相关问题