当前位置: 首页 > 知识库问答 >
问题:

HighCharts:如何在浏览器调整大小时切换yAxis选项?

潘学民
2023-03-14

在HighCharts 5.0中,您可以定义一组应用于不同视口大小的响应式图表选项。请参阅https://www.highcharts.com/docs/chart-concepts/responsive.

不幸的是,对xAxis和yAxis的更改只在一个方向上起作用。再次调整浏览器大小时,无法恢复到原始选项。

示例一http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/responsive/axis/

chartOptions: {
  xAxis: {
      labels: {
          formatter: function () {
              return this.value.charAt(0);
          }
      }
  }
}

预期的

当图表宽度为

真实的

当图表

示例二http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/responsive/

chartOptions: {
    yAxis: {
        title: {
            text: null
        }
    }
}

预期

当图表宽度为

真实的

当图表宽度为

总结

有一些潜在的解决办法,但它们没有解决这个问题。

在第二个示例中,可以使用HighChart的样式化模式和CSS媒体查询或类名来切换yAxis标题(参见此处的类名示例:https://www.highcharts.com/docs/chart-concepts/responsive)

然而,这只能解决CSS可以解决的问题(例如隐藏元素)。这不是截断X轴名称、将标签旋转45度等的实际解决方案。

另一个选项是在$(窗口)内使用HighCharts update()函数。resize(),但图表已经在侦听此事件,因此我不想添加其他侦听器。

我是错过了什么还是这只是一个bug?非常感谢。

共有1个答案

束敏学
2023-03-14

您可以创建一组响应式规则。与上面的示例保持一致:当图表宽度小于500px时匹配一个,当图表宽度大于500px时匹配一个。像这样:

responsive: {
  rules: [{
    condition: {
      maxWidth = 500, //matches all configs with width below 500px
    },
    chartOptions: {} //options go here
  }, {
    condition: {
      minWidth = 500, //matches all configs with width above 500px
    },
    chartOptions: {} //options go here
  }]
}

如果您想要进一步的步骤,您也可以这样做,因为API是响应式的。规则规定:

用于响应设置的一组规则。规则是自上而下执行的。

工作示例:http://jsfiddle.net/ewolden/25z2a1c9/

API on responsive。规则:https://api.highcharts.com/highcharts/responsive

 类似资料:
  • 问题内容: 调整浏览器窗口大小时,有什么方法可以调整jqGrid的大小?我已经尝试过这里描述的方法,但是该技术在IE7中不起作用。 问题答案: 作为后续措施: 由于不可靠,本文中显示的先前代码最终被放弃了。我现在按照jqGrid文档的建议使用以下API函数调整网格大小: 为了进行实际的大小调整,将实现以下逻辑的函数绑定到窗口的resize事件: 使用其父级的clientWidth和(如果不可用)o

  • 问题内容: 是否可以在浏览器大小更改时刷新页面?我使用一些样式来创建页面上的区域,并且如果浏览器按比例缩小了版面布局。 也许我可以使用jQuery检测文档大小的变化? 问题答案: 立即更新以供任何人查看。jQuery现在考虑绑定已弃用的函数。 而且proximus的响应方式(至少在Opera / Chrome / Firefox中)有效,即使浏览器只是坐在那里,它也会不断轮询以调整大小。看起来,调

  • 我使用数组/循环从一个名为gallery(Wordpress)的自定义字段获取图像。检索到的图像未调整大小,这意味着它们的最大宽度为150px,最大高度为150px。现在我想知道如何自动让这些图像适应浏览器的大小。Chrome做得很好,但IE和FF做不到。当我设置img{width:100%;}调整大小是可行的,但是图像本身的大小是错误的,你可以想象得到。 是否有其他可能让图像自动调整到浏览器大小

  • 问题内容: 这看似微不足道,但是经过所有的研究和编码,我无法使其正常工作。条件是: 浏览器窗口大小未知。因此,请不要提出涉及绝对像素大小的解决方案。 图片的原始尺寸未知,可能适合浏览器窗口,也可能不适合浏览器窗口。 图像垂直和水平居中。 图像比例必须守恒。 图像必须在窗口中完整显示(不裁剪)。 我不希望滚动条出现(如果图像合适,它们也不应该出现。) 窗口尺寸更改时,图像会自动调整大小,以占据所有可

  • 问题内容: 我希望在调整浏览器窗口大小时自动调整所有(或部分)图像的大小。我发现了以下代码-尽管它什么也没做。 HTML CSS 在调整浏览器窗口的大小时,如何基本设置全屏设计(带有),并使元素处于完全相同的位置(明智的选择),同时它们的大小也进行调整(就像对背景一样)? 要使图像灵活,只需添加和。图像并在IE7中有效,但在IE8中无效(是的,另一个怪异的IE错误)。要解决此问题,您需要添加IE8

  • 问题内容: 问题:用户从小程序开始长时间操作;显示带有进度条的JDialog。用户打开/切换到另一个浏览器选项卡-仍然显示JDialog(并惹恼用户)。 当用户切换到另一个选项卡时,JDialog应该被隐藏;并在用户切换回时再次显示。 注意:我看到了类似问题的问题,解决方案是添加windowActivated / deactivated监听器。它对我不起作用,因为窗口中有多个框架,其中一个框架包含