这是 d3 示例中常见的计时函数:
d3.timer(function() {
var angle = (Date.now() - start) * speed,
transform = function(d) {
return "rotate(" + angle / d.radius + ")";};
lightsweep.select(".lightsweep").attr("transform", transform);
});
“光扫”是我特有的。d.radius 从绑定到“lightsweep”对象的数据对象中提取,用于旋转 svg 组。这段代码对我有用,但我想间歇性地运行它;比如说,运行它 1 秒钟,然后等待 10 秒钟,然后再次运行它。我怎样才能做到这一点?
注意:我不想使用 setInterval 或 setTimeout。d3 计时器有一些惊人的属性,并且比那些功能更好。但是 d3.timer 需要 areturn true
来取消它。我想这可能是一个回调函数,但我想不出来。
谢谢你的帮助。