最近公司的項(xiàng)目中需要在小程序內(nèi)使用echarts組件來(lái)展示數(shù)據(jù),同時(shí)因?yàn)槭褂昧俗远x導(dǎo)航欄以及蒙版層,導(dǎo)致Echarts圖形覆蓋于所有組件的上方,不符合設(shè)計(jì)要求。
嘗試解決的思路:
z-index:Echarts使用的是微信原生canvas,優(yōu)先級(jí)高,z-index完全無(wú)效。
cover-view:因?yàn)閜age中含有一些如input之類(lèi)的無(wú)法與cover-view進(jìn)行嵌套使用的元素,故cover-view也無(wú)法奏效。
wx.canvasToTempFilePath:wx.canvasToTempFilePath官方文檔
思路是等待畫(huà)圖完成之后利用這個(gè)方法將畫(huà)布導(dǎo)出成圖片,來(lái)代替canvas進(jìn)行數(shù)據(jù)展示,使用display來(lái)控制canvas的隱藏會(huì)出現(xiàn)一些不太好看的閃爍,因此使用position:absolute將canvas預(yù)先移動(dòng)至屏幕外。
該方法需要在draw()回調(diào)方法中使用,部分代碼如下:
ec-canvas.js
wxml中
js中
這個(gè)過(guò)程中還是存在著一些問(wèn)題,例如如果畫(huà)圖較慢會(huì)導(dǎo)致生成的圖片只有一部分?jǐn)?shù)據(jù)甚至是全透明的,目前只找到了一個(gè)并不完善的解決方案,就是使用setTimeOut來(lái)增加一些延遲,等待畫(huà)圖結(jié)束,因此,加上了wx.showLoading來(lái)過(guò)渡,但依然存在一些隱患。希望官方可以后續(xù)的更新中可以推出一些較為完善的方案。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com