赞
踩
不要写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正确,结果很可能是一样的,没有具体实验过。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。