iAm*_*ric 3 javascript charts google-visualization twitter-bootstrap
我在Boostrap标签中显示Google图表时遇到问题。我有两个标签,每个标签中都有一个Google图表。在第一个图表中,图表可以正确显示,但是在第二个图表中,图表很小并且可以压缩。我不明白为什么。
这是我的代码:
<div class="tab-pane active" id="player">
<h3>Players' resources</h3>
<div id="totalPlayerChart" style="height: 500px;"></div>
</div>
<div class="tab-pane" id="producer">
<h3>Producers' resources</h3>
<div id="totalProducerChart" style="height: 500px;"></div>
</div>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawTotalPlayerChart);
google.charts.setOnLoadCallback(drawTotalProducerChart);
function drawTotalPlayerChart() {
[...]
var chart = new google.visualization.LineChart(document.getElementById('totalPlayerChart'));
chart.draw(data, options);
}
function drawTotalProducerChart() {
[...]
var chart = new google.visualization.LineChart(document.getElementById('totalProducerChart'));
chart.draw(data, options);
}
</script>
Run Code Online (Sandbox Code Playgroud)
在实施的charts
,graphs
内部的tabs
,可能会出现内容调整大小的问题。
这类问题的原因
在“引导程序”选项卡中,当我们切换选项卡时,仅活动选项卡将具有display: block;
其余属性的tab-contents
应用于display: none;
。
如果div元素具有属性display: none;
,则这是此问题的主要原因,那里的宽度也被认为是0px。
为了解决此问题,我添加了以下CSS,而不是通过使用隐藏标签,而是通过此方法display: none;
使用height&溢出属性处理的,宽度不会设置为0px。
.tab-content>.tab-pane {
height: 1px;
overflow: hidden;
display: block;
visibility: hidden;
}
.tab-content>.active {
height: auto;
overflow: auto;
visibility: visible;
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
注意:这是使用CSS解决此问题的方法之一。
这是在隐藏容器时绘制图表的结果,
并且选项中没有特定的大小设置
要纠正问题,添加特定尺寸,或等到选项卡可见后再绘制图表...
另外,setOnLoadCallback
每次页面加载只需要调用一次
也可以放在load
声明 中
建议设置类似于以下代码片段...
google.charts.load('current', {
callback: function () {
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
switch ($(e.target).html()) {
case 'Players':
drawTotalPlayerChart();
break;
case 'Producers':
drawTotalProducerChart();
break;
}
});
function drawTotalPlayerChart() {
[...]
var chart = new google.visualization.LineChart(document.getElementById('totalPlayerChart'));
chart.draw(data, options);
}
function drawTotalProducerChart() {
[...]
var chart = new google.visualization.LineChart(document.getElementById('totalProducerChart'));
chart.draw(data, options);
}
// draw chart on initial tab
drawTotalPlayerChart();
},
packages: ['corechart']
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1142 次 |
最近记录: |