Highcharts - 关于完整图表宽度的问题

IT技术 javascript html css highcharts
2021-02-28 07:18:11

我正在使用 Highcharts 柱状图,我希望它是 100% 宽度响应图表。容器很简单<div>,没有任何格式。当文档加载时,图表总是固定宽度 600x400px 大小。如果我调整窗口大小或切换到另一个浏览器选项卡,图表会填充宽度并变成我想要的响应式全宽图表。如果我重新加载页面,它又是固定宽度。我尝试为容器和图表设置宽度,但是,没有任何帮助。如果我将容器 div 移动到父 div 上一级,它会起作用。如何使图表在页面加载时也变成全宽?

谢谢

2个回答

图表的宽度取自jQuery.width(container),因此如果您在某些隐藏选项卡或类似内容中有图表,则宽度将是未定义的。在这种情况下,设置默认宽度和高度 (600x400)。

“标签”正是问题所在。我将图表与 jQuery UI 标签插件一起使用,禁用它后,图表正确呈现。现在我通过在图表呈现后初始化选项卡来解决它。
2021-05-11 07:18:11

我知道这是一个老问题,但我遇到了完全相同的问题,并找到了另一个效果很好的解决方案。

从 Highcharts 4.1.5(也可能是旧版本)开始,该chart对象具有一个reflow()函数。此处查看文档

回流 ()

将图表回流到其容器。默认情况下,根据 chart.reflow 选项,图表会在 window.resize 事件之后自动回流到其容器。但是,div resize 没有可靠的事件,因此如果在没有窗口 resize 事件的情况下调整容器大小,则必须显式调用它。

希望它可以帮助别人。

只需在我的 $(".button") 中编写类似 $(".tab1").find(".chartContainer").each(function () { $(this).highcharts().reflow()}) 之类的东西。 click() 比在隐藏之前渲染图表更有用。我的情况要求我基于 ajax-gets 动态创建图表,所以这确实是我能找到的最好(也是唯一)的解决方案。谢谢!
2021-04-20 07:18:11
完美的!!效果很好!
2021-05-10 07:18:11