微信小程序避坑指南——echarts层级太高/层级遮挡

问题:小程序中echarts因为小程序原生的canvas层级太高,而导致弹窗这类dom元素无法遮挡住canvas,如下图;

 解决方案(wx:if控制dom显隐,显示canvas就重新渲染echarts,简单粗暴,但是耗费性能):

第一步:wxml

<!-- echarts饼图——用wx:if控制dom显隐,hidden没办法隐藏 -->
<ec-canvas canvas-id="storeChart" ec="{{ pieChart }}" wx:if="{{!showDate}}"></ec-canvas>
<!-- vant的日期选择控件——弹出日期控件就隐藏echarts,关闭日期控件就重新渲染echarts -->
<view>
<van-calendar show="{{ showDate }}" type="range" bind:close="onClose" bind:confirm="onConfirm" min-date="{{ minDate }}"
max-date="{{ maxDate }}" allow-same-day/>
</view>

第二步:js

Page({
/**
* 页面的初始数据
*/
data: {
showDate: false, // 饼图、日期 显隐
//饼图
pieChart: {
lazyLoad: true // 延迟加载
},
pieData: {
data: [{
value: 10,
name: ‘杭州‘
}, {
value: 20,
name: ‘广州‘
}, {
value: 38,
name: ‘上海‘
}]
},
},
// 显示日期
onDisplay() {
this.setData({
showDate: true,
});
},
// 关闭日期
onClose() {
this.setData({
showDate: false,
});
//dom节点出现需要时间,延迟一下重新渲染饼图
setTimeout(()=>{
this.pieEchartsComponnet = this.selectComponent(‘#storeChart‘); //获取饼图dom
this.pieChart() // 饼图初始化
},0)
},
})

微信小程序避坑指南——echarts层级太高/层级遮挡

原文:https://www.cnblogs.com/elevens/p/14848521.html

以上是微信小程序避坑指南——echarts层级太高/层级遮挡的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>