ECharts官网教程详见官网教程前言:相信很多人都有这个需求。点击折线图的非节点时,无法触发点击事件,官网没有这方面的。教程,只能默默研究解决方法如下://基于准备好的dom,初始化echarts实例varmychart=echarts.init(document.getElementById('main'));//指定图表的配置项和数据varoption={title:{text:'EChartsGettingStartedExample'},tooltip:{},legend:{data:['sales']},xAxis:{data:[“衬衫”,“开衫”,“雪纺衫”,“裤子”,“高跟鞋”,“袜子”]},yAxis:{},系列:[{name:'sales',type:'bar',数据:[5,20,36,10,10,20]}]};//使用刚刚指定的配置项和数据显示图表。mychart.setOption(选项);//绑定点击事件mychart.getZr().on("click",function(params){constpointInPixel=[params.offsetX,params.offsetY];if(mychart.containPixel("grid",pointInPixel)){letxIndex=mychart.convertFromPixel({seriesIndex:0},[params.offsetX,params.offsetY])[0];/*事件处理代码写入位置*/}});实现代码解释如下:使用getZr添加图表整个画布区域的点击事件,获取params携带的信息:mychart.getZr().on('click',params=>{})获取鼠标点击位置:constpointInPixel=[params.offsetX,params.offsetY];使用containPixelAPI判断点击位置是否在显示图形区域内。以下示例过滤绘制图形的网格外的点击事件,如X、Y轴标签、空白位置的点击事件。if(this.echart.containPixel('grid',pointInPixel)){}使用接口convertFromPixel获取点击位置对应的x轴数据的索引值。我的实现是基于索引值的。当然,还可以获得其他信息。有关详细信息,请查看文档。letxIndex=this.echart.convertFromPixel({seriesIndex:0},[params.offsetX,params.offsetY])[0];其实在上一步中,就可以获取到轴、索引、ID等丰富的信息,可以方便的用在自己的事件处理代码中。该方法只响应图表区的响应事件,通过convertFromPixel获取一些可能需要的信息,可以很好的完成需求,没有其他性能影响,完美实现了如题的需求。
