Html 使谷歌图表具有响应性
我对HTML、CSS和Javascript比较陌生。我正在编写一个JSP应用程序(我是一名Java程序员),并一直在学习响应式web设计。我在使用谷歌图表进行响应式设计时遇到了麻烦。我在这页上有两张并列的图表 我甚至用了一个例子来说明如何在codepen上获得响应性谷歌图表。当我在codepen的网站上使用它时,这个例子是有效的。但当我把它保存在电脑上并打开文件时,图表就不再有响应了。这让我觉得不是代码本身出了问题,而是我的浏览器出了问题。任何帮助都将不胜感激 下面是我的JSP应用程序的代码。HTML:Html 使谷歌图表具有响应性,html,css,responsive-design,google-visualization,Html,Css,Responsive Design,Google Visualization,我对HTML、CSS和Javascript比较陌生。我正在编写一个JSP应用程序(我是一名Java程序员),并一直在学习响应式web设计。我在使用谷歌图表进行响应式设计时遇到了麻烦。我在这页上有两张并列的图表 我甚至用了一个例子来说明如何在codepen上获得响应性谷歌图表。当我在codepen的网站上使用它时,这个例子是有效的。但当我把它保存在电脑上并打开文件时,图表就不再有响应了。这让我觉得不是代码本身出了问题,而是我的浏览器出了问题。任何帮助都将不胜感激 下面是我的JSP应用程序的代码。H
<div class="charts">
<div class="pieChartDiv">
<div id="piechart"></div>
</div>
<div class="lineChartDiv">
<div id="chart_div"></div>
</div>
</div>
图表的Javascript:
<script type="text/javascript"
src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('43', {packages: ['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Cakes', 11],
['Cupcakes', 2],
['Cookies', 2],
['Other', 2],
]);
var options = {
title: 'Product Sales',
'legend':'left',
'is3D':true,
'width':550,
'height':320,
backgroundColor: '#CFC3F8',
};
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
</script>
<script>
google.charts.setOnLoadCallback(drawBasic);
function drawBasic() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'X');
data.addColumn('number', 'Sales');
data.addRows([
[0, 0], [1, 10], [2, 23], [3, 17], [4, 18], [5, 9],
[6, 11], [7, 27], [8, 33], [9, 40], [10, 32], [11, 35],
[12, 30], [13, 40], [14, 42], [15, 47], [16, 44], [17, 48],
[18, 52], [19, 54], [20, 42], [21, 55], [22, 56], [23, 57],
[24, 60], [25, 50], [26, 52], [27, 51], [28, 49], [29, 53],
[30, 55], [31, 60], [32, 61], [33, 59], [34, 62], [35, 65],
[36, 62], [37, 58], [38, 55], [39, 61], [40, 64], [41, 65],
[42, 63], [43, 66], [44, 67], [45, 69], [46, 69], [47, 70],
[48, 72], [49, 68], [50, 66], [51, 65], [52, 67], [53, 70],
[54, 71], [55, 72], [56, 73], [57, 75], [58, 70], [59, 68],
[60, 64], [61, 60], [62, 65], [63, 67], [64, 68], [65, 69],
[66, 70], [67, 72], [68, 75], [69, 80]
]);
var options = {
hAxis: {
title: 'Time'
},
vAxis: {
title: 'Popularity'
},
hAxis: {gridlines: {color: '#1E4D6B'}},
vAxis: {gridlines: {color: '#1E4D6B'}},
legend: { position: 'top' },
backgroundColor: '#CFC3F8'
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
load('43',{packages:['corechart']});
google.charts.setOnLoadCallback(drawChart);
函数绘图图(){
var data=google.visualization.arrayToDataTable([
[“任务”,“每天工作小时数”],
[‘蛋糕’,11],
[‘纸杯蛋糕’,2],
['Cookies',2],
[‘其他’,2],
]);
变量选项={
标题:“产品销售”,
“图例”:“左”,
“is3D”:正确,
“宽度”:550,
‘高度’:320,
背景颜色:“#CFC3F8”,
};
var chart=new google.visualization.PieChart(document.getElementById('PieChart');
图表绘制(数据、选项);
}
google.charts.setOnLoadCallback(rubsic);
函数(SIC){
var data=new google.visualization.DataTable();
data.addColumn('number','X');
data.addColumn('number','Sales');
data.addRows([
[0, 0], [1, 10], [2, 23], [3, 17], [4, 18], [5, 9],
[6, 11], [7, 27], [8, 33], [9, 40], [10, 32], [11, 35],
[12, 30], [13, 40], [14, 42], [15, 47], [16, 44], [17, 48],
[18, 52], [19, 54], [20, 42], [21, 55], [22, 56], [23, 57],
[24, 60], [25, 50], [26, 52], [27, 51], [28, 49], [29, 53],
[30, 55], [31, 60], [32, 61], [33, 59], [34, 62], [35, 65],
[36, 62], [37, 58], [38, 55], [39, 61], [40, 64], [41, 65],
[42, 63], [43, 66], [44, 67], [45, 69], [46, 69], [47, 70],
[48, 72], [49, 68], [50, 66], [51, 65], [52, 67], [53, 70],
[54, 71], [55, 72], [56, 73], [57, 75], [58, 70], [59, 68],
[60, 64], [61, 60], [62, 65], [63, 67], [64, 68], [65, 69],
[66, 70], [67, 72], [68, 75], [69, 80]
]);
变量选项={
哈克斯:{
标题:“时间”
},
言辞:{
标题:“人气”
},
hAxis:{网格线:{颜色:'#1E4D6B'}},
变量:{网格线:{颜色:'#1E4D6B'}},
图例:{位置:'top'},
背景颜色:“#CFC3F8”
};
var chart=new google.visualization.LineChart(document.getElementById('chart_div'));
图表绘制(数据、选项);
}
页面截图和页面大小较小的屏幕截图:
第一个图表似乎不会调整大小。codepen中的示例也以同样的方式工作
代码笔示例:
我可能走得太远了,所以请容忍我。任何建议都会很有帮助 我相信这段代码可能是您的解决方案,如果窗口大小发生变化,它会调整图表的大小(“反应式响应”):
$(window).resize(function(){
ChartFunctionName();
});
我是一个初学者,但这是我发现的,并用于使我的谷歌图表响应,它的工作原理:仅供参考,您可以查看谷歌图表->我使用的完整代码:
function TekenBasisschoolUitstroom()
{
var data = new google.visualization.arrayToDataTable([
['School', 'Speciaal-praktijk-kader', 'VMBO-kader', 'VMBO-T-voorheen MAVO', 'VMBO-T/HAVO', 'HAVO', 'HAVO/VWO',
'VWO'],
['De Ster', 1, 0, 0, 0, 3, 0, 1], ['OBS Driespan', 8, 3, 13, 1, 27, 0, 20] ]);
var schoolUitstroomOpties = {
'title':'Uitstroom basisscholen #schooljaar 2014-2015 @Harkstede',
isStacked: 'percent',
legend: {position: 'right', maxLines: 3},
vAxis: {
minValue: 0,
ticks: [0, .2, .4, .6, .8, 1]
},
'chartArea': {left:40,'width': '80%', 'height': '80%'},
animation:{
startup: true,
duration: 2000,
easing: 'out', },
};
var schoolUitstroomChart = new google.visualization.ColumnChart(document.getElementById('uitstroom_basisschool'));
google.visualization.events.addOneTimeListener(schoolUitstroomChart, 'ready', selectHandler);
var aantalScholen = data.getNumberOfRows()
function selectHandler() {
console.log ('schoolUitstroomChart is ready en er zijn ' + (aantalScholen) + ' scholen');
}
schoolUitstroomChart.draw(data, schoolUitstroomOpties);
$(window).resize(function(){
TekenBasisschoolUitstroom();
});
}
图表需要重新绘制
onresize
function TekenBasisschoolUitstroom()
{
var data = new google.visualization.arrayToDataTable([
['School', 'Speciaal-praktijk-kader', 'VMBO-kader', 'VMBO-T-voorheen MAVO', 'VMBO-T/HAVO', 'HAVO', 'HAVO/VWO',
'VWO'],
['De Ster', 1, 0, 0, 0, 3, 0, 1], ['OBS Driespan', 8, 3, 13, 1, 27, 0, 20] ]);
var schoolUitstroomOpties = {
'title':'Uitstroom basisscholen #schooljaar 2014-2015 @Harkstede',
isStacked: 'percent',
legend: {position: 'right', maxLines: 3},
vAxis: {
minValue: 0,
ticks: [0, .2, .4, .6, .8, 1]
},
'chartArea': {left:40,'width': '80%', 'height': '80%'},
animation:{
startup: true,
duration: 2000,
easing: 'out', },
};
var schoolUitstroomChart = new google.visualization.ColumnChart(document.getElementById('uitstroom_basisschool'));
google.visualization.events.addOneTimeListener(schoolUitstroomChart, 'ready', selectHandler);
var aantalScholen = data.getNumberOfRows()
function selectHandler() {
console.log ('schoolUitstroomChart is ready en er zijn ' + (aantalScholen) + ' scholen');
}
schoolUitstroomChart.draw(data, schoolUitstroomOpties);
$(window).resize(function(){
TekenBasisschoolUitstroom();
});
}