offsetX和offsetY不同浏览器兼容问题

公司做报表统计是用到了highcharts这个插件,使用插件时有个功能需要通过获取鼠标在图标上面的相对位置来实现。

那么问题来了,chrome中,直接通过e.offsetX和e.offsetY就可以实现,达到预期效果;

IE中,offsetY和offsetY从边框外部开始计算,和chrome的不计算边框边度不一样,好吧,在IE浏览器时手动减去边框宽度,也达到了预期效果;

最后的firefox,页面效果为:115844_Mon4_2367511.jpg

发现在区域间移动时坐标总是获取不正确,打开调试发现红色区域最左边的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值