在Echarts区域的任何位置精准触发事件

需求背景:点击Echarts区域跳转页面,跳转的区域不包括grid的坐标及标签,翻看了Echarts官网,实现触发事件之的on方法,但是此方法只能在鼠标点击某个图形上会触发,这样并不能实现需求。通过百度和查看github issue后多用Echarts实例的getZr()方法监听到整个画布的 click 事件。

​ 使用echartsInstance.getZr().on('click' , params => {})监听画布,配合echartsInstance.containPixel('grid', pointInPixel) 方法判断点击位置是否在坐标系里面,从而解决需求问题。

​ 但是getZr()官方文档并没解释。所以下面将分享两个点击事件的场景,一:点击某个图形触发点击事件,二:点击任意位置触发点击事件并且知道自己点击的位置,处理折线不易点击的情况。

一. 场景一 : 点击图形触发点击事件

1.echartsInstance.on()

​ 鼠标点击某个图形上会触发点击事件使用on方法

​ 图形为折线上的折点,柱状图的柱子等等。折线,坐标轴的标签,坐标轴内的空白位置是不会触发点击事件。

​ 可选参数有:

​ 参数一:事件名称 eventName

eventName: string,//事件名称,全小写,例如'click','mousemove', 'legendselected'

​ 参数二:过滤条件 query

query: string|Object,//可选的过滤条件,能够只在指定的组件或者元素上进行响应。可为 string 或者 Object。

如果为 string 表示组件类型。格式可以是 'mainType' 或者 'mainType.subType'。例如:

  chart.on('click', 'series', function () {...});
  chart.on('click
ECharts 5.3.2 中的地图组件并没有直接提供名为“on”的事件触发机制,它通常依赖于图表自身的数据交互API或者内置的交互功能来实现。如果你想在地图上主动触发某些操作并监听响应,你可以使用以下几种方法: 1. **点击事件**(onClick):地图节点支持`event.dataIndex`属性,当你点击地图区域时,可以通过监听`chart.on('click', function(params) { ... })`来获取点击位置的数据索引。 ```javascript chart.on('click', function(params) { console.log('Clicked on:', params); }); ``` 2. **鼠标移动事件**(mousemove):可以监听`chart.on('mousemove', function(params) { ... })`,在鼠标移到地图上时获取位置信息。 ```javascript chart.on('mousemove', function(params) { console.log('Mouse moved to:', params); }); ``` 3. **数据驱动**:如果你希望地图的行为基于数据变化,可以使用`setOption`动态更新选项,并在相应的数据更改事件(如dataUpdate、regionChange等)中添加处理函数。 ```javascript chart.on('dataUpdate', function() { // 根据新的数据执行相应操作 }); ``` 4. **自定义事件**:ECharts允许通过`echarts.registerAction`注册自定义事件,然后在地图上添加事件监听器。 ```javascript echarts.registerAction({ name: 'customEvent', event: 'customEvent' }); chart.dispatchAction({ type: 'customEvent' }, ...); ``` 记得根据实际需求调整这些示例,将它们应用到你的地图实例中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值