2

我有一个堆积条形图,显示月份或年份的值。

它由一系列列(1 或 12)组成,并在每列内进行调整(9 个单独的值)。

您可以在此处查看:(注意 - 这是一个有效的网页,目前在 AWS 上运行。)

http://54.245.225.47/stackedbar_ex_good

当我从月视图转到年视图时,我想将所有位置移动到年值,然后将它们淡出为年值.enter()

问题是矩形(我通常会这样做,.exit().transition().attr("y", new_val)因为列被删除(.exit()),所以永远不会被调用。当我尝试从 中引用孩子.rectssvg.selectAll(".col").exit().transition(),它们似乎一下子消失了。我猜这是错误的方法。

抱歉,这太令人困惑了!我确信这种事情在其他地方得到了回答,但我什至不知道正确描述它的语言(因此搜索它)。任何提示/指针将不胜感激。

(有很多代码 - 我不知道如何简化以便发布它。)

4

1 回答 1

5

是的,有点难以理解这个问题......据我所知,您希望在将现有矩形从 SVG 中删除之前将它们设置为动画到某个位置。但是你的问题是矩形的父母——col在你的代码中——被立即删除,所以嵌套的矩形永远没有机会动画。正确的?

如果是这样,一种解决方法是延迟移除现有col的 ',以便让rects动画有时间播放。所以,而不是这样做:

col.exit().remove()

像这样应用延迟:

col.exit().transition().delay(2000).remove()

这里没有实际的、可见的过渡;这只是延迟调用的一种方式remove()

于 2013-02-15T17:30:29.137 回答