前沿
小編最近在開發(fā)可視化圖表(HighCharts-Vue)過程中遇到一個奇葩的bug,highCharts的響應(yīng)式圖表只是在windows窗口變化時圖表才會隨之相應(yīng)變化,但是當我用js操作父容器高寬時highCharts的響應(yīng)式圖表并不會隨之響應(yīng)。在此記錄下來,以便于以后的開發(fā),也希望可以幫助到遇到此坑的小伙伴們。
解決方案:
默認情況下,chart會伴隨著window.resize事件自動地根據(jù)它所屬于的container容器reflow,根據(jù)每個chart.reflow屬性。但是,對于div的resize有卻不會reflow,所以只能自己去監(jiān)聽div(父容器的變化)重新出發(fā)chart.setSize()方法,*******Vue中使用方法(先初始化let s = HighCharts.chart(this.id,this.option);然后s.setSize(appwidth,appheight);appwidth,appheight是監(jiān)聽div變化的數(shù)值,)*******不過官方推出的方法(chart.reflow)小編測試了一次下發(fā)現(xiàn)當你的圖表設(shè)置為100%的時候每次reflow它是根據(jù)windows視窗去響應(yīng)導(dǎo)致每次都會沾滿全屏,所以此方法小編沒有用。這樣每次變化div的時候就可以做到響應(yīng)式了。