【发布时间】:2016-01-29 18:51:19
【问题描述】:
我正在设置一个专门的打印按钮。该页面很复杂,需要在发送到 window.print() 之前进行一些预处理。
此时我的 Highcharts 代码正在运行。它会正确调整页面上图表的大小,然后在打印后将其调整回原来的大小。
问题是从那时起,图表将不再响应媒体查询的变化。该网站是响应式的,建立在 Bootstrap 之上,因此这不是功能性结果。
如何更改图表大小,但使其能够响应媒体查询?
我使用的代码是:
设置代码
var saveChartContainerWidth = $('.highcharts-container').css('width');
var saveChartContainerWidthSVG = saveChartContainerWidth.slice(0, -2);
$('.highcharts-container').css('width', '690px');
$(Highcharts.charts).each(function(i,chart){
var height = chart.renderTo.clientHeight;
var width = 690; // chart.renderTo.clientWidth;
chart.setSize(width, height);
chart.reflow();
});
打印后拆解代码
$('.highcharts-container').css('width', saveChartContainerWidth);
$(Highcharts.charts).each(function(i,chart){
var height = chart.renderTo.clientHeight;
var width = saveChartContainerWidthSVG;
chart.setSize(width, height);
chart.reflow();
});
【问题讨论】:
-
我认为问题在于您给图表提供了固定大小而不是最大大小,因此响应性被删除了
-
我该怎么做?除非我给它一个特定的宽度值,否则我在 IE 中让它调整图表大小时遇到了一些问题。其他浏览器似乎只需调整容器大小即可正常工作。
-
不幸的是,我不知道这是否有效或如何在 IE 上实现...
-
您是否尝试过类似:jsfiddle.net/w4ro5xb7/54?
标签: javascript jquery twitter-bootstrap highcharts