解决echarts的柱状图、折线图点击非图表图形元素不会触发click事件

需求说明:echarts的click事件,只当点击到图形元素是才会触发,对于当一组数据最大值和最小值相差较大时,数值较小的图形元素太小不好点击触发,现在我需要点击事件来获得点击事件的params的data数据,即series中传入的原始数据项data内的某条记录。如何通过点击空白区域也能触发获取到数据。

解决思路:

1)使用getZr()添加图表的整个canvas区域的点击事件,并获取params携带的信息;

2)获取到鼠标点击位置;

var pointInPixel= [params.offsetX, params.offsetY];

3)过滤了绘制图形的网格外的点击事件,比如X、Y轴lable、空白位置等的点击事件,我们只需要图表区域的点击事件;

myChart.containPixel('grid',pointInPixel)

4)获取点击位置对应的x轴数据的索引值,以便我们通过索引值来获得对应的data数据。

var xIndex=myChart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0];

5)获取myChart的series,并根据索引值获取data;

option.series[0].data[xIndex];//myChart.getOption().series[0].data[xIndex]

完整代码块:

myChart.getZr().on('click',function (params){
                    var pointInPixel= [params.offsetX, params.offsetY];
                    if (myChart.containPixel('grid',pointInPixel)) {
                        var xIndex=myChart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0];
                        var ds = option.series[0].data[xIndex];//myChart.getOption().series[0].data[xIndex]
                        _this._setRowColor(ds);//需要执行的方法
                    }
                });

以上就是解决柱状图、折线图点击非图表图形元素不会触发click事件的方法,大家有什么其他更好的方法也请不吝赐教!

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要在 Echarts 柱状图上显示折线,可以通过使用 Echarts 的组合图表来实现。具体步骤如下: 1. 首先,确保你已经引入了 Echarts 的 JavaScript 文件。 2. 创建一个包含柱状图折线图的容器元素,例如一个 `<div>` 元素。 3. 使用 Echarts 的 `echarts.init` 方法初始化图表,并将容器元素传递给该方法。 4. 定义柱状图的配置项,包括数据、样式等。 5. 定义折线图的配置项,包括数据、样式等。 6. 将柱状图折线图的配置项分别传递给 `echarts.init` 方法创建的实例。 7. 使用 `setOption` 方法将柱状图折线图的配置项设置到图表中。 示例代码如下所示: ```javascript // 创建图表容器 var chartContainer = document.getElementById('chart'); // 初始化图表 var chart = echarts.init(chartContainer); // 定义柱状图配置项 var barOption = { // 柱状图数据 series: [{ type: 'bar', data: [10, 20, 30, 40, 50] }] }; // 定义折线图配置项 var lineOption = { // 折线图数据 series: [{ type: 'line', data: [5, 10, 15, 20, 25] }] }; // 设置柱状图折线图的配置项 chart.setOption(barOption); chart.setOption(lineOption); ``` 可以根据自己的需求调整柱状图折线图的样式、数据等。记得在 HTML 中创建一个容器元素,并给它一个唯一的 ID,然后将该 ID 传递给 `document.getElementById` 方法来获取容器元素的引用。 注意:以上代码仅为示例,实际开发中可能需要根据实际情况进行适当的修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值