echarts折线图添加区域点击事件,而不用去点小圆点(扩大点击范围)

不要写onClick事件,用以下方法代替

myChart.getZr().on('click',function (params) {
	    var pointInPixel= [params.offsetX, params.offsetY];
	    if (myChart.containPixel('grid',pointInPixel)) {
	        /*此处添加具体执行代码*/
            
            var pointInGrid=myChart.convertFromPixel({seriesIndex:0},pointInPixel);
	        //X轴序号
	        var xIndex=pointInGrid[0];

            //获取当前图表的option
	        var op=myChart.getOption();

            //获得图表中我们想要的数据
	        var month=op.xAxis[0].data[xIndex];

	    }
	});


	//将可以响应点击事件的范围内,鼠标样式设为pointer--------------------
	myChart.getZr().on('mousemove',function (params) {
	    var pointInPixel= [params.offsetX, params.offsetY];
	    if (myChart.containPixel('grid',pointInPixel)) {
	    	myChart.getZr().setCursorStyle('pointer');
	    };
	});
	myChart.on('mouseout', function (params) {
		var pointInPixel= [params.offsetX, params.offsetY];
    	if (!myChart.containPixel('grid',pointInPixel)) {
	    	myChart.getZr().setCursorStyle('default');
	    };
    });
	//--------------------------------------------------------------

如果对convertFromPixel方法有好的理解,应该可以获得更多有效的数据,操作起来应该会更简单一点。

之前的代码IE不能识别,修改过后应该比较标准来,我测试在IE下可以正常使用。

这里暂时没有搞明白,理解肤浅,欢迎指教。

 

———————————更新————————————————————

最近才明白convertFromPixel这个破函数的作用,其实功能很弱,只是将像素坐标转换成逻辑坐标。

比如pointInPixel是[480,120]转换后得到pointInGrid[4,9],4就是X轴坐标,5就是Y轴坐标。

finder {seriesIndex:0}其实可以换成其他很多写法,只要finder正确,结果很可能是一样的,没有具体实验过。

  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值