【发布时间】:2013-09-17 18:37:29
【问题描述】:
我已经成功地实现了来自this D3 example of animated line drawing 的一些代码,但我并不知道它是如何工作的。我真的很感激逐行分解代码的工作原理。我对 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);
})
在此先感谢
【问题讨论】:
-
你是怎么解决这个问题的?
-
这个概念在这篇 CSS 技巧帖子中得到了很好的解释:css-tricks.com/svg-line-animation-works我手头没有 D3 实现,但这里有一个使用 HTML5 画布的实现stackoverflow.com/questions/25442709/…
标签: javascript d3.js data-visualization