我使用Highcharts v.2.3.3並構建了一個餅圖。當用戶點擊某個東西時,我可以用另一個替換該圖表,但替換會立即發生。是否有辦法在新餅圖淡入時讓第一個餅圖淡出,因此會產生「模糊」效果?我可以使用淡出將一個餅圖轉換爲另一個餅圖嗎?
注意:第一個餅圖當前在新圖構建之前被刪除。
我使用Highcharts v.2.3.3並構建了一個餅圖。當用戶點擊某個東西時,我可以用另一個替換該圖表,但替換會立即發生。是否有辦法在新餅圖淡入時讓第一個餅圖淡出,因此會產生「模糊」效果?我可以使用淡出將一個餅圖轉換爲另一個餅圖嗎?
注意:第一個餅圖當前在新圖構建之前被刪除。
我找到了解決方案。我使用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();
});
我會使用jquery像這樣淡出當前圖表容器:
$('#ChartContainer').fadeOut();
然後我將取代圖表用新的和使用jQuery 淡入()以使圖表返回到圖。
編輯
了jQuery淡出/淡入函數的第一個參數是一個可選的速度參數,所以你可以一次動畫,使他們「模糊」起來。
Thanks @Robotsushi,但我不能有任何顯示在兩者之間的過渡空白。我想我會嘗試一個不同的路線並克隆創建的svg元素,將其附加到容器的父級,然後使用它作爲「虛擬」圖表淡出,而實際圖表被刪除。 – 2013-04-05 17:23:08
請看我更新的anwser。 – BentOnCoding 2013-04-05 19:01:00
感謝您的更新。唯一的問題是舊圖表在第二次建成之前被破壞並完全從DOM中刪除,所以淡入內容看起來有點奇怪,我必須克隆圖表,以便等到淡出之後才能刪除所有圖表它的痕跡。 – 2013-04-06 02:33:00