如何在d3.js v5中使用.attr进行过渡

时间:2019-03-20 14:47:53

标签: javascript d3.js

我一直在尝试将液体填充计(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]);

我不明白究竟是什么导致了此错误,因此非常感谢您的帮助。谢谢!

0 个答案:

没有答案