我正在制作一个谷歌图表,显示和隐藏功能。手册图表将隐藏在页面加载上,当用户点击按钮图表时,将显示。 我的代码
<script type="text/javascript">
google.load("visualization", "1", { packages: ["corechart"] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var items = $(".label1").text();
var data = google.visualization.arrayToDataTable([
<%= chartItems %>
]);
var options = {
title: 'Poll Results'
};
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
<div id="chart_div" style="display:none; width:800px;height:500px;"></div>
我的问题是,当用户点击按钮并且图表可见时,它没有占据整个宽度和高度(800x500)。它采用未知尺寸(400x200)。 注意:当图表在页面加载中可见时,它可以正常工作。 代码是HTML中的相同更改
<div id="chart_div" style=" width:800px;height:500px;"></div>
答案 0 :(得分:22)
您可以在该图表的选项中作为marios建议并设置尺寸,但这不会解决在隐藏div中绘制图表时出现的所有问题。可视化API维度测量在隐藏的div中不能很好地工作,因此元素位于错误的位置并且在某些浏览器中具有错误的大小。您需要在绘制图表之前立即取消隐藏div,并且可以在图表完成绘图时再次隐藏它。以下是执行此操作的示例代码:
var container = document.getElementById('chart_div');
container.style.display = 'block';
var chart = new google.visualization.PieChart(container);
google.visualization.events.addListener(chart, 'ready', function () {
container.style.display = 'none';
});
chart.draw(data, options);
答案 1 :(得分:6)
使用 chartArea:{} 设置宽度&amp;高度
function drawChart() {
var items = $(".label1").text();
var data = google.visualization.arrayToDataTable([
<%= chartItems %>
]);
var options = {
title: 'Poll Results',
chartArea: {
width: 800,
height: 500
}
};
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
答案 2 :(得分:3)
我确认这是一个错误。如果div隐藏为“ visibility:hidden;”,则可以正常工作。
如果CSS显示“ display:none”,则不起作用
答案 3 :(得分:1)
可以选择询问Google图表API https://developers.google.com/chart/interactive/docs/customizing_charts?hl=es的特定宽度和高度。
答案 4 :(得分:0)
直接在图表选项中提供宽度。
例如:
options='{
"width": "800"
}'