我正在尝试将数据更新动画化为使用 Highcharts 构建的饼图。
这是我一起破解的演示,显示了我正在尝试制作的动画的非常粗略的版本:http: //jsfiddle.net/HsspB/
hack 使用 setInterval 实现动画:
var iTimer = setInterval(step, 25);
function step() {
iCurrent = Math.min(iCurrent+3, iFinal);
tChart.series[0].setData(
[
{ 'y': iCurrent, 'color': '#f2b000', 'name': null },
{ 'y': 100-iCurrent, 'color': '#fae09e', 'name': null }
],
true
);
if(iCurrent === iFinal) clearInterval(iTimer);
}
我没有使用那个确切代码的原因是它显然是一个 hack,而且似乎 Highcharts 必须已经通过它的 API 使这成为可能,只要我知道如何表达它。
hack 完全是程序性的(而不是声明性的),这意味着我必须实际计算并在数学上对这些步骤进行建模,而不是指定持续时间、转换类型和缓动函数。
我想知道这是否是 Highcharts 提供的东西(大概是通过 chart.animation 属性),以及我如何去实现它。如果没有明确的支持,我会对有关如何推出自己的方法的建议感兴趣,包括 Highcharts API 的其他相关部分是否比依赖完整的数据更新更适合这种工作(即系列.setData())。嘿——如果我可以通过 CSS 动画来做到这一点,那我也很酷。
(考虑后备时,我使用的是 jQuery 1.8.3 和核心 jQueryUI 1.8.6)
任何帮助表示赞赏。