首页 > 解决方案 > 线系列图在调整大小时出现错误 - 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。为什么呢?我需要重新更新数据集还是什么?

标签: phpjqueryhighcharts

解决方案


嵌套服务器和客户端逻辑不好。更好的是使用这样的分离逻辑。下面的一个只是为了想法而不是一个确切的代码。但是如果您提供将服务器逻辑与客户端逻辑分开的完整代码,则可以修复。

<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>

然后在您的图形脚本中使用这些变量。因为在调整浏览器大小时,图形正在重绘,并且在图形重绘时其外观数据不可用。但是如果使用上述逻辑,那么每次重绘时数据都将可用


推荐阅读