У меня была похожая проблема в том, что мои диаграммы отображались на клиенте с нулевой шириной, когда диаграмма была на вкладке, которая не была активирована по умолчанию.Этот ответ был вдохновлен ответом ojreadmore.Вместо того, чтобы использовать событие готовности документа jQuery для инициализации вашей старшей диаграммы, вы должны вместо этого использовать событие активации вашей вкладки, на которой находится ваша диаграмма.Это дает дополнительное преимущество, заключающееся в том, что каждый раз, когда пользователь нажимает на вкладку, выполняется анимация шикарной диаграммы.
Вместо:
$(document).ready(function() {
var chart1 = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'bar'
},
title: {
text: 'Fruit Consumption'
},
xAxis: {
categories: ['Apples', 'Bananas', 'Oranges']
},
yAxis: {
title: {
text: 'Fruit eaten'
}
},
series: [{
name: 'Jane',
data: [1, 0, 4]
}, {
name: 'John',
data: [5, 7, 3]
}]
});
});
Использование:
$('#tabcontainer').on('tabsactivate', function (event, ui) {
var chart1 = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'bar'
},
title: {
text: 'Fruit Consumption'
},
xAxis: {
categories: ['Apples', 'Bananas', 'Oranges']
},
yAxis: {
title: {
text: 'Fruit eaten'
}
},
series: [{
name: 'Jane',
data: [1, 0, 4]
}, {
name: 'John',
data: [5, 7, 3]
}]
});
});