我已经成功地实现了这个 D3 动画线条绘制示例中的一些代码,但我对它的工作原理一无所知。我真的很感激逐行分解代码的工作原理。我对 D3 比较陌生;我了解使用该库操作 DOM 的基础知识,但我觉得这需要我缺乏的中级理解。
我在下面包含了我重新设计的示例的特定部分。我怀疑聪明的部分与.attr("stroke-dashoffset", 0);
&.attr("stroke-dashoffset", totalLength);
部分相关,因此非常感谢您清楚地解释这些部分如何工作以及它们如何促成效果。
var totalLength = path.node().getTotalLength();
path
.attr("stroke-dasharray", totalLength + " " + totalLength)
.attr("stroke-dashoffset", totalLength)
.transition()
.duration(2000)
.ease("linear")
.attr("stroke-dashoffset", 0);
svg.on("click", function(){
path
.transition()
.duration(2000)
.ease("linear")
.attr("stroke-dashoffset", totalLength);
})
提前谢谢了