Highcharts - 检测渲染(或重绘)事件何时由 resize/reflow 引起?

Highcharts - detect when render (or redraw) event is caused by a resize/reflow?

我正在柱形图中的列上绘制一些自定义 SVG 元素。

如果图表因 window 调整大小而重绘,我需要重绘它们,以便它们在列上保持正确的位置和大小。

我有一个 chart.events.render 事件处理程序,但 render 事件没有告诉你 为什么 它会重新呈现,我知道有时我的 render 事件处理程序触发,因为我还触发了某些事情的代码重绘。

我也检查了 redraw 事件,它的类型总是 "redraw" 无论什么触发了重绘。

有什么方法可以检测 redraw/re-render 何时发生 特别是 因为 resize/reflow?

您可以包装 reflow 方法并在处理后调用对齐函数。

(function(H) {
    H.wrap(H.Chart.prototype, 'reflow', function(proceed) {
        proceed.apply(this, Array.prototype.slice.call(arguments, 1));
        console.log('after reflow');
    });
})(Highcharts);

现场演示: http://jsfiddle.net/BlackLabel/kc1zdg28/

文档: https://www.highcharts.com/docs/extending-highcharts/extending-highcharts