2014-05-14 31 views
6

Gerektiğinde eklenebilir veya kaldırılabilir 1-4 grafik arasında herhangi bir sayıya sahip bir dinamik sayfa oluşturmaya çalışıyorum ama büyük bir sorunla karşılaştım ve göremiyorum içeren div yeniden boyutlandırıldıktan sonra yeniden boyutlandırmak için grafik almak. Örneğin, sayfada bir grafik eklediğimde, genişlik 800 olacak, ardından başka bir grafik eklemek için bir düğmeyi tıklatıp 400 parça olacak şekilde yeniden boyutlandırmalı, ancak bunu gerçekleştiremiyorum. Çok basit modeli olarak sahip olduğum o krom dev araçları penceresine 800 günlüğe kaydeder çalıştırılır ancak grafiği boyutlandırmak olmaz şimdi zamanhighcharts yeniden çizme ve yeniden çalışmaz

$(function() { 
    $('#container').highcharts({ 
     chart: { 
      type: 'line', 
      width: 300 
     }, 
     title: { 
      text: 'Width is set to 300px' 
     }, 

     xAxis: { 
      categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
     }, 

     series: [{ 
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] 
     }] 
    }); 
    $('#resize').click(function() { 
     $('#container').attr('style', 'width: 800px'); 
     $("#container").highcharts().reflow(); 
     console.log($('#container').width()); 
    }); 
}); 

aşağıdaki. Highcharts belgelerinde önerilen şekilde hem redraw() hem de reflow() yöntemini denedim. Hatta jsfiddle üzerinde gerçekten hızlı bir demo kuruyorum, http://jsfiddle.net/7cbsV/ Herkes bana yardım edebilir. Bu önemli bir şey. Yardım için şimdiden teşekkür ederim.

cevap

4

Basit chart.setSize(w,h)'u kullanmaya ne dersiniz? Bakınız docs.

$("#container").highcharts().setSize(800, height); 
1

bu

$('#container').highcharts({ 
    chart: { 
     type: 'line' 
    }, 

benzer olur ve böylece sadece

$('#container').highcharts({ 
    chart: { 
     type: 'line', 
     width: 300 
    }, 

Grafikte genişliğini kaldırmak ve sadece o zaman bu

#container { 
    width: 300px; 
} 

gibi 300 konteyner genişliğini ayarlamak Kapsayıcıyı zaten yaptığınız gibi yeniden boyutlandırın. grafik, konteyner div genişliğine göre yeniden boyutlandırılacaktır.

Bunun yardımcı olacağını umuyorum.

İlgili konular