【发布时间】:2012-02-07 06:04:13
【问题描述】:
我想要一个随浏览器窗口调整大小的图表,但问题是高度固定为 400 像素。 This JSFiddle example也有同样的问题。
我该怎么做?我尝试使用 chart.events.redraw 事件处理程序来调整图表的大小(使用 .setSize),但我猜它会启动一个永无止境的循环(触发事件处理程序,它调用 setSize,触发另一个事件处理程序等)。
【问题讨论】:
标签: javascript highcharts
我想要一个随浏览器窗口调整大小的图表,但问题是高度固定为 400 像素。 This JSFiddle example也有同样的问题。
我该怎么做?我尝试使用 chart.events.redraw 事件处理程序来调整图表的大小(使用 .setSize),但我猜它会启动一个永无止境的循环(触发事件处理程序,它调用 setSize,触发另一个事件处理程序等)。
【问题讨论】:
标签: javascript highcharts
我遇到了同样的问题,我用以下方法解决了它:
<div id="container" style="width: 100%; height: 100%; position:absolute"></div>
即使我调整了它的大小,该图表也非常适合浏览器。您可以根据需要更改百分比。
【讨论】:
当使用百分比时,高度相对于宽度会随之动态变化:
chart: {
height: (9 / 16 * 100) + '%' // 16:9 ratio
},
【讨论】:
另一个不错的选择是传递一个 renderTo HTML 引用。 如果是字符串,则使用该 id 的元素。 否则你可以这样做:
chart: {
renderTo: document.getElementById('container')
},
或使用 jquery:
chart: {
renderTo: $('#container')[0]
},
更多信息可以在这里找到: https://api.highcharts.com/highstock/chart.renderTo
【讨论】:
只是不要在 HighCharts 中设置 height 属性,只要您在图表的包含元素上设置高度,它就会为您动态处理它。如果位置是绝对的,它可以是一个固定的数字,甚至是一个百分比。
默认情况下,高度是根据偏移高度计算的 包含元素
示例:http://jsfiddle.net/wkkAd/149/
#container {
height:100%;
width:100%;
position:absolute;
}
【讨论】:
删除高度将解决您的问题,因为如果您调整屏幕,highchart 的设计是响应式的,它也会重新调整大小。
【讨论】:
也可以直接使用javascript的window.onresize
例如,我的代码(使用 scriptaculos)是:
window.onresize = function (){
var w = $("form").getWidth() + "px";
$('gfx').setStyle( { width : w } );
}
form 是我网页上的 html 表单,gfx 是高图图形。
【讨论】:
【讨论】: