Events Highcharts-检测何时渲染(或重画)事件是由调整大小/回流引起的?
我正在柱状图中的列上绘制一些自定义SVG元素 如果图表因为窗口调整而重新绘制,我需要重新绘制它们,以便它们在列上保持正确的位置和大小 我有一个Events Highcharts-检测何时渲染(或重画)事件是由调整大小/回流引起的?,events,highcharts,Events,Highcharts,我正在柱状图中的列上绘制一些自定义SVG元素 如果图表因为窗口调整而重新绘制,我需要重新绘制它们,以便它们在列上保持正确的位置和大小 我有一个chart.events.render事件处理程序,但是render事件没有告诉您它被重新渲染的原因,我知道有时候我的render事件处理程序会触发,因为我也会触发某些事情的代码重绘 我还检查了redraw事件,它的类型始终是“redraw”,无论触发重画的是什么 是否有任何方法可以检测何时由于调整大小/回流而发生重画/重新渲染?您可以包装回流方法,并在处
chart.events.render
事件处理程序,但是render
事件没有告诉您它被重新渲染的原因,我知道有时候我的render
事件处理程序会触发,因为我也会触发某些事情的代码重绘
我还检查了redraw
事件,它的类型始终是“redraw”
,无论触发重画的是什么
是否有任何方法可以检测何时由于调整大小/回流而发生重画/重新渲染?您可以包装
回流
方法,并在处理后调用对齐函数
(function(H) {
H.wrap(H.Chart.prototype, 'reflow', function(proceed) {
proceed.apply(this, Array.prototype.slice.call(arguments, 1));
console.log('after reflow');
});
})(Highcharts);
现场演示:
文档:谢谢,这正是我需要的。当
reflow
触发时,我实际上不会重新绘制我的东西,因为从console.log()
这似乎经常发生,但我确实使用它来设置一个标志,指示确实发生了回流,然后下一次render
触发时,如果设置了该标志,我就会重新对齐。