公司做报表统计是用到了highcharts这个插件,使用插件时有个功能需要通过获取鼠标在图标上面的相对位置来实现。
那么问题来了,chrome中,直接通过e.offsetX和e.offsetY就可以实现,达到预期效果;
IE中,offsetY和offsetY从边框外部开始计算,和chrome的不计算边框边度不一样,好吧,在IE浏览器时手动减去边框宽度,也达到了预期效果;
最后的firefox,页面效果为:
发现在区域间移动时坐标总是获取不正确,打开调试发现红色区域最左边的offsetX为0,第一个绿色区域最左边的offsetX也为0,然后使用网上找来的方法:
e.pageX-$(e.target).offset().left发现和offsetX没有区别,继续调试发现e.target为highcharts的背景的div,并不是整个图表所在的div,找到问题了,将获取offsetX的代码修改为:
e.pageX-$(this).offset().left再看效果正常了
转载于:https://my.oschina.net/u/2367511/blog/645044