微信小程序使用过百度 echarts 的开发者会遇到这样的问题,echarts优先级问题,因为 echarts 渲染出来的是画布 canvas ,在小程序中有限级是最高的,为了解决这个问题,我们可以采用以下思路:我们可以先等待 echart
微信小程序使用过百度 echarts 的开发者会遇到这样的问题,echarts优先级问题,因为 echarts 渲染出来的是画布 canvas ,在小程序中有限级是最高的,为了解决这个问题,我们可以采用以下思路:
我们可以先等待 echarts 渲染成功之后,隐藏 echarts,然后通过图片来展示。
1、小程序echarts部分代码
<!-- 图表 -->
<view class="main">
<ec-canvas
id="month-trend-bar-dom1"
class="month-trend"
canvas-id="month-trend-bar1"
bind:init="echartBarInit1($wx)"
:ec=" ec " v-if="echartImg1 ==''">
</ec-canvas>
<!-- image用来解决canvas组件层级过高问题 -->
<image v-else src="{{echartImg1}}" mode="widthFix"></image>
</view>
<!-- 图表 -->
2、通过dom操作canvas:这里#month-trend-bar-dom1为id名,为了防止没渲染成功获取不到,这里设置了半秒之后获取操作 ,可以看到echarts生成的canvas是2d的,所以获取方法得使用 this.selectComponent()
获取节点生成图片:将canvas生成临时图片展示,这里用到 canvasToTempFilePath({})
this.ecComponent1 = this.$wx.selectComponent('#month-trend-bar-dom1')
setTimeout(function () {
that.ecComponent1.canvasToTempFilePath({
x: 0,
y: 0,
width: detail.width,
height: detail.height,
// destWidth: 700,
// destHeight: 500, //mychart1的option
success:res => {
console.log("temp path1", res.tempFilePath)
that.echartImg1 = res.tempFilePath
}
})
}, 500)
3、 说明:wepy框架通过 this.$wx.selectComponent()获取,原生小程序通过 this.selectComponent()获取。
4、其他问题参考:
wepy小程序如何引入echarts统计图
本文标题为:关于wepy小程序引入echarts统计图之后出现定位穿透问题的解决方案


基础教程推荐
- html5视频如何嵌入到网页(视频代码) 2025-01-22
- Bootstrap学习笔记之css组件(3) 2024-01-22
- webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件 2023-10-29
- JSONObject与JSONArray使用方法解析 2024-02-07
- Loaders.css免费开源加载动画框架介绍 2025-01-23
- clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析 2024-01-08
- 创建Vue3.0需要安装哪些脚手架 2025-01-16
- 纯css实现漂亮又健壮的tooltip的方法 2024-01-23
- js判断一个对象是否在一个对象数组中(场景分析) 2022-10-21
- Django操作cookie的实现 2024-04-15