我一直在尝试将液体填充计(http://bl.ocks.org/brattonc/5e5ce9beee483220e2f6)的示例转换为D3 v5。但是,有了这段代码:
function animateWave() {
wave.attr('transform','translate('+waveAnimateScale(wave.attr('T'))+',0)');
wave.transition()
.duration(config.waveAnimateTime * (1-wave.attr('T')))
.easeLinear
.attr('transform','translate('+waveAnimateScale(1)+',0)')
.attr('T', 1)
.each('end', function(){
wave.attr('T', 0);
animateWave(config.waveAnimateTime);
});
我不断收到Uncaught TypeError: Cannot read property 'attr' of undefined
的错误。
作为问题,控制台指向行.attr('transform','translate('+waveAnimateScale(1)+',0)')
。 waveAnimateScale使用以下代码定义:
var waveAnimateScale = d3.scaleLinear()
.range([0, waveClipWidth-fillCircleRadius*2]) // Push the clip area one full wave then snap back.
.domain([0,1]);
我不明白究竟是什么导致了此错误,因此非常感谢您的帮助。谢谢!