最近公司的項目中需要在小程序內使用echarts組件來展示數據,同時因為使用了自定義導航欄以及蒙版層,導致Echarts圖形覆蓋于所有組件的上方,不符合設計要求。
嘗試解決的思路:
z-index:Echarts使用的是微信原生canvas,優先級高,z-index完全無效。
cover-view:因為page中含有一些如input之類的無法與cover-view進行嵌套使用的元素,故cover-view也無法奏效。
wx.canvasToTempFilePath:wx.canvasToTempFilePath官方文檔
思路是等待畫圖完成之后利用這個方法將畫布導出成圖片,來代替canvas進行數據展示,使用display來控制canvas的隱藏會出現一些不太好看的閃爍,因此使用position:absolute將canvas預先移動至屏幕外。
該方法需要在draw()回調方法中使用,部分代碼如下:
ec-canvas.js
wxml中
js中
這個過程中還是存在著一些問題,例如如果畫圖較慢會導致生成的圖片只有一部分數據甚至是全透明的,目前只找到了一個并不完善的解決方案,就是使用setTimeOut來增加一些延遲,等待畫圖結束,因此,加上了wx.showLoading來過渡,但依然存在一些隱患。希望官方可以后續的更新中可以推出一些較為完善的方案。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答