echarts 自定义legend点击事件,改写点击行为

需求背景:
小程序中页面,饼图的legend需要支持用户点击出现弹出框;官网上点击legend时只支持选中/取消当前对应的模块
解决方案:监听legendSelectchanged事件,执行legend被点击后立即被选中,然后再写其他自定义业务代码

onLoad() {
  this.initChart()
}

// 初始化chart
initChart(type) {
  const self = this
  const option = {...} // 设置数据及配置项option
  this.chartComponnet = this.selectComponent('#mychart-dom-pie'); // 去获取echarts    这里的id就是echarts的id

  this.chartComponnet.init((canvas, width, height, dpr) => {
    const foodChart = echarts.init(canvas, null, { // echarts会继承父元素的宽高
      width: width,
      height: height,
      devicePixelRatio: dpr
    });
    foodChart.setOption(option); // 这一步是给echarts 设置数据及配置项option
    //重要代码 点击legend start
    foodChart.on('legendSelectchanged', function (params) {
   	  console.log('legend被点击')
      foodChart.setOption({
        legend: {
          selected: {
            [params.name]: true // 此步为了点击legend后重新被选中
          }
        }
      })
      // 出现弹窗
      self.setData({
        showFood: true
      })
    })
    //重要代码 点击legend end
    return foodChart;
  });

}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Echarts饼图的legend事件可以通过监听`legendSelectchanged`事件来实现。在该事件的回调函数中,我们可以执行一些自定义的业务代码。例如,在小程序中,可以通过设置`selected`属性来重新选中被点legend,并触发弹窗显示。下面是一个示例代码: ```javascript this.chartComponnet.on('legendSelectchanged', function (params) { // 重新选中被点legend chart.setOption({ legend: { selected: { [params.name]: true } } }); // 执行其他的自定义业务代码,比如显示弹窗 self.setData({ showFood: true }); }); ``` 另外,对于Vue框架中的Echarts使用方式,可以通过以下方式来监听legend事件: ```javascript this.$khflChart.on('legendselectchanged', (params) => { // 处理legend被点后的逻辑 }); ``` 总而言之,通过监听legend的`legendSelectchanged`事件,我们可以在点legend时处理其他的业务逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [echarts定义legend事件改写行为](https://blog.csdn.net/AlexZZ0823/article/details/123281574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [echarts 饼图legend不置灰](https://blog.csdn.net/elia1208/article/details/127206282)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值