php - 线系列图在调整大小时出现错误 - highcharts
问题描述
我使用了 highcharts单线系列图。它似乎一切正常,但是当我调整页面大小时(只是为了检查响应性或只是在移动设备上)。值消失。我可以在控制台日志中看到错误。
这就是我生成图表的方式
Highcharts.stockChart('nav-chart', {
tooltip: {
pointFormat:"{point.y:.3f}\u20ac"
},
chart: {
type: 'line',
zoomType: 'x',
pinchType: 'x',
panning: false,
<?php if (is_front_page()){ ?>
height: 700,
<?php } else { ?>
height: 500,
events: {
load: updateLegendLabel
}
<?php } ?>
},
updateLegendLabel
有一些生成标签的计算。
var chrt = !this.chart ? this : this.chart;
chrt.update({
legend: {
useHTML: true,
symbolPadding: 0,
symbolWidth: 0,
symbolHeight: 0,
symbolRadius: 0,
labelFormatter: function() {
var lastVal = this.yData[this.yData.length - 1],
chart = this.chart,
xAxis = this.xAxis,
points = this.points,
avg = 0,
counter = 0,
min, max;
... there is some business logic down there
points
当我调整页面大小时,var 变为 null。为什么呢?我需要重新更新数据集还是什么?
解决方案
嵌套服务器和客户端逻辑不好。更好的是使用这样的分离逻辑。下面的一个只是为了想法而不是一个确切的代码。但是如果您提供将服务器逻辑与客户端逻辑分开的完整代码,则可以修复。
<script>
//before graph area started
var dataA = '<?php echo $dataA;?>';
var dataB = '<?php echo $dataB;?>';
//graph logic started
// your graph code which can use above variables
// but the variable need to be available can be evaluated from your draw script.
</script>
然后在您的图形脚本中使用这些变量。因为在调整浏览器大小时,图形正在重绘,并且在图形重绘时其外观数据不可用。但是如果使用上述逻辑,那么每次重绘时数据都将可用