给echart图绑定click等鼠标事件

在应用echarts的过程中,有时候需要给echarts绑定click事件

官方参考文档地址:https://echarts.apache.org/zh/api.html#echartsInstance.on

click事件

myChart.on('click',function (params) {
  console.log('params',params)
})

此时是可以实现点击效果的,但是有个不友好的地方就是,只有点击折线图节点或者柱图柱子的时候才会触发,达不到只要点击echarts就能实现点击事件的效果,多方查找文档,找到如下方法可以实现通过点击所在值的这一列就会触发的效果
代码如下:

myChart.getZr().on('click',function(params){
  let point=[params.offsetX,params.offsetY];
  if(myChart.containPixel('grid',point)){
    // convertFromPixel转换像素坐标值到逻辑坐标系上的点
    let xIndex = myChart.convertFromPixel({seriesIndex:0},
      point)[1];
    let op=myChart.getOption();
    let name=op.xAxis[0].data[xIndex];
  }
})

这部分的代码可以实现点击某一列就能触发这个事件,主要的信息集中在op这个变量中,name变量是点击某一列对应的名称,使用时可以将这个变量打印出来然后选择所需要传递的参数,其实这个代码是通过鼠标点击图形的坐标来进行判断点击的位置属于哪一列,从而实现这个需求,在这块我在写的时候碰到一个问题,有一个图形点击一次总是触发两次这个函数,如果你也出现了这个问题可以通过在绑定事件之前加上一句代码。

myChart.getZr().off('click');

mousemove事件

将地图上鼠标滑过的小手状态去掉

myChart.getZr().on('mousemove', param => {
   myChart.getZr().setCursorStyle('default')
   //  若鼠标滑过区域位置在当前图表范围内 鼠标设置为小手
   // if (radarChart.containPixel('grid', pointInPixel)) { 
   //  radarChart.getZr().setCursorStyle('pointer')
   // } 
 })
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值