echarts的点击事件,我们直接使用的话,只能绑定到图形上,如果数据差距过大会出现数据比较少的图形不容易点的情况,如下图
我们可以把点击事件绑定到hover背景阴影上,这样比较容易点击
具体怎么实现呢?我们可以使用getZr()这个方法,具体使用如下
myChart.getZr().off("click")
myChart.getZr().on('click', function (params) {})
可以通过下面代码拿到点击的索引值
const pointInPixel = [params.offsetX, params.offsetY]
// 判断给定的点是否在指定的坐标系或者系列上
if (myChart.containPixel('grid', pointInPixel)) {
// 获取到点击的 x轴 下标 转换为逻辑坐标
let xIndex = myChart.convertFromPixel({ seriesIndex: 0 },pointInPixel)[0]
// xIndex就是当前的索引值
console.log(xIndex);
}