我试图创建一个D3.js动画,根据与每个圆圈相关的时间戳数据的时间顺序,地图上的圆圈变得可见。 D3补间方法是我实现的方法,特别是attrTween。但是,attrTween函数在从开始值转换到结束值时逐步执行的间隔对于我的应用程序来说太少了,这导致了一种刺耳的效果,因为转换中的每一步都出现了大量的圆而不仅仅是如果间隔较小,则圈数较小。
与转换相关的代码如下所示:
selection.transition()
.duration(20000)
.ease("linear")
.attrTween("visibility",function(d, i, a){
return function(t) {
if (d.timestamp <= dateInterpolate(t)) {
return "visible" ;
} else {
return "hidden" ;
}
}
})
如何调整attrTween方法逐步调整的间隔以实现更平滑的过渡?或者是否有更适合此应用的替代方法?