Highcharts-如何拥有动态高度的图表
Highcharts - how to have a chart with dynamic height?
我想要一个随浏览器窗口调整大小的图表,但问题是高度固定为400px。这个JSFiddle示例也有同样的问题。
我该怎么做?我尝试使用chart.events.redraw事件处理程序来调整图表的大小(使用.setSize),但我猜它会启动一个无休止的循环(激发事件处理程序,它调用setSize,它激发另一个事件处理程序等)。
只是不要在HighCharts中设置height属性,只要你在图表的包含元素上设置了高度,它就会为你动态处理它。如果位置是绝对的,它可以是一个固定的数字,甚至是一个百分比。
Highcharts文档:
默认情况下,高度是根据含有元素
示例:http://jsfiddle.net/wkkAd/149/
#container {
height:100%;
width:100%;
position:absolute;
}
如果您钩住了窗口大小调整事件:
$(window).resize(function()
{
chart.setSize(
$(document).width(),
$(document).height()/2,
false
);
});
请参阅此处的小提琴示例。
Highcharts API参考:setSize()。
使用百分比时,其高度相对于宽度,并将随其动态变化:
chart: {
height: (9 / 16 * 100) + '%' // 16:9 ratio
},
具有百分比高度的JSFiddle Highcharts
删除高度将解决您的问题,因为highchart在设计上是响应性的,如果您调整屏幕,它也会重新调整大小。
或者,您可以直接使用javascript的window.onresize
例如,我的代码(使用scriptaculos)是:
window.onresize = function (){
var w = $("form").getWidth() + "px";
$('gfx').setStyle( { width : w } );
}
其中表单是我网页上的html表单,gfx是highchart图形。
另一个好的选择是,传递renderTo HTML引用。如果是字符串,则使用该id的元素。否则你可以做:
chart: {
renderTo: document.getElementById('container')
},
或者使用jquery:
chart: {
renderTo: $('#container')[0]
},
更多信息可在此处找到:https://api.highcharts.com/highstock/chart.renderTo
我遇到了同样的问题,我用解决了它
<div id="container" style="width: 100%; height: 100%; position:absolute"></div>
即使我调整了图表的大小,它也非常适合浏览器。您可以根据需要更改百分比。
- 使用JavaScript根据窗口/视口的高度动态调整图像大小
- javascript skrollr基于动态内容更新窗口高度
- window.open根据动态内容自动调整高度和宽度
- JQuery mCustomScrollbar动态高度
- 动态潜水高度jQuery.Load()不工作
- 使用setIntervel()以动态高度偏移具有固定页眉的页面上的内容
- 如何根据主体高度动态更改元素边距顶部
- 动态高度/最大高度和溢流
- 根据页眉和页脚高度更改高度的动态内容
- 如何在浏览器宽度/高度变化时动态调整图像网格的大小
- 动态增加 iframe 高度
- 在javascript中动态修改掩码高度
- fullPage.js在使用scrollOverflow时未检测到动态生成内容的高度
- 如何在svg高度动态变化时使用viewbox
- 根据屏幕高度动态填充框
- 如何根据元素高度动态调整iframe高度
- Div是根据窗口高度动态调整大小的,但在HTML中添加更多内容时失败
- 根据高度动态添加内容
- 如何增加谷歌多边形对话框的高度动态
- Iframe的高度[动态]每2秒