旋转木马中的Highcharts项目宽度不是100%

时间:2013-10-22 11:12:50

标签: javascript css twitter-bootstrap highcharts carousel

我正在我的bootstrap轮播中动态创建highcharts图。

我有这样的旋转木马:

<div class="carousel">
  <div class="carousel-inner">
    <div id="item">
      <div id="container1" data-highcharts-chart="0">
        <div class="highcarts-container">
          THE SVG
        </div>
      </div>
    </div>
    <div id="item">
      <div id="container2" data-highcharts-chart="1">
        <div class="highcarts-container">
          THE SVG
        </div>
      </div>
    </div>
    <div id="item">
      <div id="container3" data-highcharts-chart="2">
        <div class="highcarts-container">
          THE SVG
        </div>
      </div>
    </div>
    ...
  </div>
</div>

第一项显示div的100%宽度,如下所示: image1

第二项的固定宽度为400px,如下所示: enter image description here

我没有在图表选项中设置宽度和高度。这些是我的选择:

var optionsbar = {
chart: {
    type: 'bar',
    events: {
        click: function(event) {
            window.location.href = '/result/question/questionid/';
        }
    }
},
xAxis: {
    categories: '',
    title: {
        text: null
    }
},
yAxis: {
    min: 0,
    title: {
        text: 'Aantal keer gekozen',
        align: 'high'
    },
    labels: {
        overflow: 'justify'
    }
},
tooltip: {
    //valueSuffix: ' aantal keer gekozen'
},
plotOptions: {
    bar: {
        dataLabels: {
            enabled: true,
            color: 'black',
            formatter: function() {
                if (this.y === 0) {
                    return null;
                } else {
                    return this.y;
                }
            }
        },
        stacking: 'normal'
    }
},
legend: {
    layout: 'vertical',
    align: 'right',
    verticalAlign: 'top',
    x: -40,
    y: 100,
    floating: true,
    borderWidth: 1,
    backgroundColor: '#FFFFFF',
    shadow: true
},
credits: {
    enabled: false
},
exporting: {
    enabled: true
},
series: []

}

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

似乎图表需要调整窗口大小,因为除了活动幻灯片之外,旋转木马滑块不会加载到dom中。您可以在代码中添加类似的内容,以便在幻灯片事件上调整大小。

$('.carousel').carousel({
    interval: 3000
}).bind('slide.bs.carousel', function() {
    setTimeout(function() {$(window).trigger('resize')} , 1);           
});

您可能希望使用setTimeout在调整窗口大小之前允许下一张幻灯片显示在dom中。