css - Highchart 隐藏时不调整大小

标签 css angularjs highcharts

我有这个使用 Highcharts 的 AngularJS 演示应用程序: http://jsfiddle.net/dennismadsen/dpw8b8vv/1/

<div ng-app="myapp">
    <div ng-controller="myctrl">
        <button ng-click="hideView()">1. Hide</button>
        <button ng-click="showView()">2. Show</button>
        <div id="container" ng-show="show">
            <highchart id="chart1" config="highchartsNG"></highchart>
        </div>
    </div>
</div>

如果您在 JSFiddle 中更改结果 View 的宽度,Highchart 会自动将其宽度调整为容器的大小(带黑色边框的 div)。

enter image description here

我注意到如果 Highchart 被隐藏,并且窗口被调整大小,它不会自动调整大小(就像 iPad 改变横向/纵向方向)。首先点击“1. 隐藏”按钮,更改结果 View 的大小,然后按“2. 显示”按钮来试试这个。看这个例子:

enter image description here

即使 Highcharts 不可见,我如何强制调整其大小?

最佳答案

根据文档,我们需要在图表无法捕获调整大小事件的情况下触发reflow 方法。

$timeout 中触发 reflow 方法将正确呈现图表。

$scope.showView = function () {
        $scope.show = true;
        $timeout(function () {
            $scope.highchartsNG.getHighcharts().reflow()
        });
    }

Working Fiddle

关于css - Highchart 隐藏时不调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29210209/

相关文章:

javascript - Css 或 Jquery 中图像的动画光反射

javascript - 如何通过将值传递给输入类型来编辑 html 表值

html - 强制阿拉伯字符遵循从左到右的顺序

AngularJS:如何监听 DOM 事件?

javascript - 带有 angularjs 1.5 的谷歌地图实现

html - "display: none"with highcharts - 大小不正确

javascript - 调整 Javascript 代码来控制 body 的滚动

javascript - PageObjects + 非 Angular 页面 - 如何加入它们?

javascript - Highcharts:如果先前的数组只有空值,则系列不会更新

javascript - 如何在自定义 highcharts 按钮中垂直居中文本