2013-04-05 53 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