2013-04-05 54 views

回答

0

我找到了解决方案。我使用jquery来克隆第一个图表的svg元素,并将其附加到绝对定位在图表区域的div上。然后,我使用该“虚拟”图表淡出动画,而不需要淡入第二个图表。

var clonedChart = $('#chartContainer').find('svg').clone(); 
$('<div class="cloned_chart"></div>').append(clonedChart).appendTo('#pieChartWrapper'); 

// delete first chart and create second one 
.... 

// chart creation callback 
$('.cloned_chart').fadeOut('slow', function(){ 
    $(this).remove(); 
}); 
0

我会使用jquery像这样淡出当前图表容器:

$('#ChartContainer').fadeOut(); 

然后我将取代图表用新的和使用jQuery 淡入()以使图表返回到图。

编辑

了jQuery淡出/淡入函数的第一个参数是一个可选的速度参数,所以你可以一次动画,使他们“模糊”起来。

+0

Thanks @Robotsushi,但我不能有任何显示在两者之间的过渡空白。我想我会尝试一个不同的路线并克隆创建的svg元素,将其附加到容器的父级,然后使用它作为“虚拟”图表淡出,而实际图表被删除。 – 2013-04-05 17:23:08

+0

请看我更新的anwser。 – BentOnCoding 2013-04-05 19:01:00

+0

感谢您的更新。唯一的问题是旧图表在第二次建成之前被破坏并完全从DOM中删除,所以淡入内容看起来有点奇怪,我必须克隆图表,以便等到淡出之后才能删除所有图表它的痕迹。 – 2013-04-06 02:33:00