我正在使用 Highcharts 柱形图,我希望它是 100% 宽度响应图表。容器很简单<div>
,没有任何格式。当文档加载时,图表总是固定宽度 600x400px 大小。如果我调整窗口大小或切换到另一个浏览器选项卡,图表会填充宽度并变成响应式全宽图表,就像我想要的那样。如果我重新加载页面,它又是固定宽度。我尝试为容器和图表设置宽度,但是没有任何帮助。如果我将容器 div 移到父 div 上方一级,它可以工作。如何使图表在页面加载时也变成全宽?
谢谢
我正在使用 Highcharts 柱形图,我希望它是 100% 宽度响应图表。容器很简单<div>
,没有任何格式。当文档加载时,图表总是固定宽度 600x400px 大小。如果我调整窗口大小或切换到另一个浏览器选项卡,图表会填充宽度并变成响应式全宽图表,就像我想要的那样。如果我重新加载页面,它又是固定宽度。我尝试为容器和图表设置宽度,但是没有任何帮助。如果我将容器 div 移到父 div 上方一级,它可以工作。如何使图表在页面加载时也变成全宽?
谢谢
图表的宽度取自jQuery.width(container)
,因此如果您在某些隐藏选项卡或类似内容中有图表,则宽度将未定义。在这种情况下,设置默认宽度和高度 (600x400)。
我知道这是一个老问题,但我遇到了完全相同的问题并找到了另一个效果很好的解决方案。
从 Highcharts 4.1.5 开始(也可能在旧版本中),该chart
对象具有一个reflow()
功能。在此处查看文档。
回流()
将图表重排到其容器。默认情况下,根据 chart.reflow 选项,在 window.resize 事件之后,图表会自动回流到其容器。但是,对于 div 调整大小没有可靠的事件,因此如果在没有窗口调整大小事件的情况下调整容器大小,则必须显式调用。
希望它可以帮助别人。