【发布时间】:2013-03-01 15:02:34
【问题描述】:
赏金更新:我为此悬赏,所以我想提供更多信息,以防有人提出与修改我的代码不同的解决方案。目标是为条形图和柱形图在HighCharts 中为实际类别位置设置动画。动画实际的“条形/列”似乎内置在 HighCharts 中,但是,标签位置是我遇到的问题。有关 JSFiddle,请参见下文。 另外,我知道这个问题是关于 SVG 的,但我也需要 IE8 中的动画支持。
我目前的任务是对HighCharts 中的条形图和柱形图的类别重组进行动画处理。
我的条形图工作正常,能够重新组织类别和标签,标签使用以下代码制作动画:
$(this).animate({'svgY': c.labelPositions[myX]}, {'duration': animDuration, 'queue': false});
现在我正在处理列,但在让标签设置动画时遇到了很大的麻烦。代码比较一致:
$(this).animate({'svgX': c.labelPositions[myX]}, {'duration': animDuration, 'queue': false});
我使用jQuery SVG来允许SVG元素的动画,你可以找到它here。
您可以查看我正在开发的 jsFiddle here。只需点击每个图表下方的“开始”按钮即可查看它们的实际效果。
允许类别动画的实际“hack”是Highcharts.Series.prototype.update = function(changes, callback){ 函数。
只是在尝试让某些东西起作用,我发现我可以为列标签的svgY 设置动画,但svgX 似乎根本不起作用。
欢迎实际的HighCharts.js hack。
【问题讨论】:
-
在 IE8 中,两个按钮都不适合我。 Firefox 首先做了一些事情。
-
正确,因为我现在正在制作 SVG 动画,它在 IE8 中不起作用,抱歉我应该提到这一点。这些列至少在 Firefox 中为您提供动画,对吧?只是没有标签?
-
是的,上图的列在 FF 中的动画效果很好。
-
上方图表是条形图,下方图表中的列是否为您设置动画?底部图表中的列是动画的,但对我来说不是标签。
-
我刚刚发现,如果你点击底部图表上的“Go”按钮两次,标签会立即更新到正确的位置,但没有动画。
标签: jquery-animate highcharts jquery-svg svg-animate