Echarts 折线图点击事件与去除折线功能冲突解决方法

文章讲述了如何在Echarts折线图中实现点击列元素显示图片的功能,同时避免在点击取消折线功能时误触发。关键在于判断点击位置的Y轴坐标值,当其小于100时显示图片对话框。

在做折线图的时候想实现一个功能,点击当前列元素的时候显示图片,但是点击Echarts自带的取消折线显示功能时也会显示图片出来

后来研究了一下,是因为默认点击事件挂载到了整个生成图表上,而取消折线功能也在这一范围内,我们要做的就是在点击事件里判断一下点击的位置

myChart.getZr().on('click', params => {
    const pointInPixel = [params.offsetX, params.offsetY]
    // 使用 convertFromPixel方法 转换像素坐标值到逻辑坐标系上的点。获取点击位置对应的x轴数据的索引         值,借助于索引值的获取到其它的信息
    // 转换X轴坐标
    let pointInGrid = myChart.convertFromPixel({ seriesIndex: 0 }, pointInPixel);
    // 转换Y轴坐标
    let pointInGrid2 = myChart.convertFromPixel({ seriesIndex: 1 }, pointInPixel);
    clickheight = pointInGrid2[1]
    // x轴数据的索引值
    // 所点击点的X轴坐标点所在X轴data的下标
    let xIndex = pointInGrid[0];
    // 所点击点的Y轴坐标点数值
    if (clickheight < 100) {
      console.log(clickheight);
      // 呼出图片dialog
      // imgfordialog.value = imgurls.value[xIndex]
      // dialogVisible.value = true
    }
  })

可以看到箭头位置就是我点击的地方,在代码里获取鼠标点击Y轴坐标clickheight值为99.7,通过判断这个值是否<100就能解决这一冲突

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值