问题描述
我正在Zurb的Foundation框架内使用Highcharts进行类项目.我在部分标签中有三个图表.一个在12列div内,另外两个在6列div内在同一行.
I'm using Highcharts within Zurb's Foundation framework for a class project. I have three charts within a section tab. One is within a 12-column div, the other two are on the same row within 6-column divs.
加载页面时,精选图表不会占用12列的可用宽度,而两个较小的图表则会溢出其6列.但是,当调整窗口大小或尝试使用Inspect元素进行调查时,图表会立即捕捉到正确的尺寸.此行为在Chrome,FF和IE中发生.
When the page loads, the featured chart does not take up the available width of the 12 columns, and the two smaller charts overflow their 6 columns. However, when the window is resized or I try to investigate using Inspect element, the charts immediately snap into the correct dimensions. This behavior occurs in Chrome, FF, and IE.
我知道我可以设置一个特定的宽度,但是我真的很想利用Foundation并保持它们的响应速度.
I realize I could set a specific width, but I'd really like to take advantage of Foundation and keep them responsive.
我已经调整了CSS和Highcharts的初始化,但是我很困惑.其他人遇到过这个问题吗?谁能看到我所缺少的东西?
I've tweaked the CSS and Highcharts initializations, but I'm stumped. Has anyone else experienced this issue? Can anyone see what I'm missing?
这是我的HTML的摘录:
Here's an excerpt from my HTML:
<div class="row">
<div class="twelve columns">
<!--begin tabs below-->
<div class="section-container tabs" data-section="tabs">
<section>
<p class="title" data-section-title><a href="#">Heart Disease</a></p>
<div class="content" data-section-content id="heart">
<div class="row feature-chart">
<div class="large-12 columns">
<div id="heartTimeline-container">
<div id="heartTimeline"></div>
</div>
</div> <!--close 12 columns-->
</div> <!--close row-->
<div class="row small-charts">
<div class="large-6 columns">
<div id="heartDemo"></div>
</div>
<!--close 6-->
<div class="large-6 columns">
<div id="heartStages"></div>
</div>
<!--close 6-->
</div>
<!--end row-->
</div>
</section>
</div>
</div>
<!--end twelve columns-->
这是Highcharts js:
Here's the Highcharts js:
$(function () {
Highcharts.setOptions({
colors: ['#1A1A1A', '#455D78', '#BDCCD4', '#999999', '#B3B3B3', '#F2F2F2']
});
$('#heartTimeline').highcharts({
chart: {
type: 'area'
},
title: {
text: 'Heart Disease Death Rates in the U.S.from 1980-2010'
},
subtitle: {
text: 'Source: <a href="http://www.mdch.state.mi.us/pha/osr/deaths/Heartdx.asp">'+
'Michigan Department of Community Health</a>'
},
xAxis: {
labels: {
formatter: function() {
return this.value; // clean, unformatted number for year
}
}
},
yAxis: {
title: {
text: 'Heart Disease Death Rate Per 100,000 People'
},
labels: {
formatter: function() {
return this.value / 1 +'k';
}
}
},
tooltip: {
pointFormat: '{series.name} produced <b>{point.y:,.0f}</b><br/>deaths per hundred thousand people in {point.x}'
},
plotOptions: {
area: {
pointStart: 1980,
marker: {
enabled: false,
symbol: 'circle',
radius: 2,
states: {
hover: {
enabled: true
}
}
}
}
},
series: [{
name: 'Heart Disease',
data: [412.1, 397, 389, 388, 378, 375, 365.1, 355.9, 352.5, 332, 321.8, 313.8, 306.1, 309.9, 299.7, 296.3, 288.3, 280.4, 272.4, 267.8, 257.9, 247.8, 240.8, 232.3, 217, 211.1, 200.2, 190.9, 186.5, 180.1, 178.5]
}, ]
});
});
$(function () {
$('#heartDemo').highcharts({
chart: {
zoomType: 'xy'
},
title: {
text: 'Most Prevelant Causes and Effects of Heart Disease 2013'
},
subtitle: {
text: 'Source: http://circ.ahajournals.org (The American Heart Association)'
},
xAxis: [{
categories: ['Smoking', 'Obesity (BMI > 25 kg) ', 'Total cholesterol > 200 mg)', 'High Blood Pressure', 'Diabetes Mellitus', 'Prediabetes', 'Total Cardiovascular Disease', 'Stroke', 'Coronary Heart Disease', 'Heart Failure'],
labels: {
rotation: -90,
align:'right'
}
}],
yAxis: [{ // Primary yAxis
labels: {
formatter: function() {
return this.value +'%';
},
style: {
color: '#000000'
}
},
title: {
text: 'Men',
style: {
color: '#BDCCD4'
}
},
opposite: true
}, { // Secondary yAxis
gridLineWidth: 0,
title: {
text: 'Both Sexes',
style: {
color: '#455D78'
}
},
labels: {
formatter: function() {
return this.value +' %';
},
style: {
color: '#4572A7'
}
}
}, { // Tertiary yAxis
gridLineWidth: 0,
title: {
text: 'Women',
style: {
color: '#AA4643'
}
},
labels: {
formatter: function() {
return this.value +' %';
},
style: {
color: '#AA4643'
}
},
opposite: true
}],
tooltip: {
shared: true
},
legend: {
layout: 'vertical',
align: 'left',
x: 120,
verticalAlign: 'top',
y: 80,
floating: true,
backgroundColor: '#FFFFFF'
},
series: [{
name: 'Both Sexes',
color: '#455D78',
type: 'column',
yAxis: 1,
data: [19, 68.2, 43.4, 33, 8.3, 38.2, 35.3, 2.8, 6.4, 2.1],
tooltip: {
valueSuffix: ' %'
}
}, {
name: 'Women',
type: 'spline',
color: '#AA4643',
yAxis: 2,
data: [16.7, 63.7, 44.9, 32.2, 7.9, 30.5, 34, 3, 5.1, 1.8],
marker: {
enabled: false
},
dashStyle: 'shortdot',
tooltip: {
valueSuffix: ' %'
}
}, {
name: 'Men',
color: '#BDCCD4',
type: 'spline',
data: [21.3, 72.9, 41.3, 33.6, 8.7, 46, 36.7, 2.6, 7.9, 2.5],
tooltip: {
valueSuffix: ' %'
}
}]
});
});
$(function () {
$('#heartStages').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Number of Deaths for Different Types of Heart Diseases in the U.S. for 2008'
},
subtitle: {
text: 'Source: <a href="http://www.nhlbi.nih.gov/resources/docs/2012_ChartBook_508.pdf">'+
'Morbitity & Mortality: 2012 Chart Book on Cardiovascular, Lung and Blood Disease</a>'
},
xAxis: {
categories: [
'Coronary Heart Disease',
'Heart Attack',
'Cardiomyopathy',
'Stroke',
'Atrial Fibrillation and Flutter',
'Heart Failure',
'Diseases of Pulmonary Circulation',
'Pulmonary Embolism',
],
labels: {
rotation: -90,
align:'right'
}
},
yAxis: {
min: 0,
title: {
text: 'Heart Disease Diagnostic Category (thousands)'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} </b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Heart Disease Related Deaths for 2008',
data: [405.309, 133.958, 23.932, 134.148, 15.383, 56.830, 12.927, 7.158]
}]
});
});
推荐答案
我是从另一个答案中得到的,所以请给thegreyspot点功劳.
I got this from another answer, so give thegreyspot some credit in this question.
解决方案:在图形加载后(或在用数据填充时)调用$(window).resize();
solution: call $(window).resize();
after the graph is loaded (or when you fill it with data)
这篇关于自适应Highcharts在窗口调整大小之前无法正确调整大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!