#css #charts #google-visualization
#css #Диаграммы #google-визуализация
Вопрос:
На одной странице отображается несколько диаграмм, у некоторых пользователей экран большего размера, а у некоторых стандартный экран маленького размера.
Есть ли какой-либо способ иметь гибкую ширину, чтобы она могла поместиться на экране монитора любого размера.
Я попытался установить ширину на 100%, но это не сработало.
<table width="100%">
<tr>
<td>
<div id="chart_GP" class="chart_div">
<div class="chart_preloader">amp;nbsp;</div>
</div>
</td>
<td id="td_profit">
<div id="chart_Profit" class="chart_div">
<div class="chart_preloader">amp;nbsp;</div>
</div>
</td>
<td>
<div id="chart_Visits" class="chart_div">
<div class="chart_preloader">amp;nbsp;</div>
</div>
</td>
</tr>
</table>
CSS
.chart_preloader {
height:250px;
width: 100%;
background:url('/images/pie.gif') center center no-repeat;
background-color : #EEF;
}
.chart_div {
border-color: #006699;
border-style: solid;
border-width: 1px;
}
Параметры диаграммы Google
var options = {
title: "Last 12 Months Gross Profit per Month",
animation: {
duration: 1500,
startup: true //This is the new option
},
pointSize: 5,
curveType: 'function',
backgroundColor: chart_background_Color,
colors: [chartLine_Color],
legend: 'none',
width: 385,
height: 250,
tooltip: { isHtml: true },
hAxis: {
slantedText: true,
slantedTextAngle: 90
},
vAxis: {
title: 'Profit',
titleTextStyle: { italic: false, fontName: 'Calibri', fontSize: '12', bold: 'false' }
//format: '#'%''
}
};
Ответ №1:
рекомендуем не указывать параметры ширины в параметрах диаграммы и использовать макет css
, которому будет соответствовать диаграмма
редко используйте таблицы, поэтому зависит от макета, который вы ищете, ниже приведен один пример
чтобы сделать диаграмму адаптивной, перерисуйте диаграмму при изменении размера окна…
google.charts.load('current', {
callback: function () {
var data = new google.visualization.DataTable();
data.addColumn('date', 'Time of Day');
data.addColumn('number', 'Rating');
data.addRows([
[new Date(2015, 0, 1), 5],
[new Date(2015, 0, 7), 3],
[new Date(2015, 0, 14), 3],
[new Date(2015, 0, 21), 2],
[new Date(2015, 0, 28), 8]
]);
var options = {
title: "Last 12 Months Gross Profit per Month",
animation: {
duration: 1500,
startup: true //This is the new option
},
pointSize: 5,
curveType: 'function',
backgroundColor: 'cyan',
colors: ['red'],
legend: 'none',
height: 250,
tooltip: { isHtml: true },
hAxis: {
slantedText: true,
slantedTextAngle: 90
},
vAxis: {
title: 'Profit',
titleTextStyle: { italic: false, fontName: 'Calibri', fontSize: '12', bold: 'false' }
//format: '#'%''
}
};
var chart1 = new google.visualization.LineChart(document.getElementById('chart_GP'));
drawChart(chart1);
var chart2 = new google.visualization.LineChart(document.getElementById('chart_Profit'));
drawChart(chart2);
var chart3 = new google.visualization.LineChart(document.getElementById('chart_Visits'));
drawChart(chart3);
// make chart responsive
window.addEventListener('resize', function () {
drawChart(chart1);
drawChart(chart2);
drawChart(chart3);
}, false);
function drawChart(chart) {
chart.draw(data, options);
}
},
packages:['corechart']
});
.chart_preloader {
height:250px;
width: 100%;
background:url('/images/pie.gif') center center no-repeat;
background-color : #EEF;
}
.dashboard {
text-align: center;
}
#chart_GP {
float: left;
}
#chart_Profit {
display: inline-block;
}
#chart_Visits {
float: right;
}
.chart_div {
border-color: #006699;
border-style: solid;
border-width: 1px;
width: 32%;
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div class="dashboard">
<div id="chart_GP" class="chart_div">
<div class="chart_preloader">amp;nbsp;</div>
</div>
<div id="chart_Profit" class="chart_div">
<div class="chart_preloader">amp;nbsp;</div>
</div>
<div id="chart_Visits" class="chart_div">
<div class="chart_preloader">amp;nbsp;</div>
</div>
</div>
Комментарии:
1. как я уже упоминал в своем вопросе, width 100% не работает. Не могли бы вы предоставить фрагмент с несколькими диаграммами
2. Я думаю, вы неправильно поняли мой вопрос, я не смотрю на отзывчивую сторону, я хочу, чтобы диаграмма рисовалась на мониторе любого размера при первой загрузке.
3. пропустил это, но да, это возможно — измененный ответ выше