我需要为 Firefox 扩展找到事件的位置(鼠标悬停在按钮上)。 我一直在使用:
var obj = $mb(e.target,doc).offset();
var left = obj.left;
var top = obj.top;
但问题是它返回的值是事件在屏幕中的位置而不是页面中的位置,也就是说它没有考虑滚动位置 {in Firefox} ..(但在 Google Chrome 中它的工作).
然后我使用了鼠标位置。
var obj_left = (window.Event) ? e.pageX : event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
但问题是它根据导致事件的鼠标位置返回不同的值(按钮两端的相同按钮的不同值),但在第一种情况下即使它返回屏幕位置它返回单个值事件(两端按钮的单个值)。
我需要的是事件的返回值应该相同,并且应该考虑滚动位置。
最佳答案
Firefox 中的鼠标事件同时具有 pageX
和 clientX
属性(请分别参见 https://developer.mozilla.org/en/DOM/event.pageX 和 https://developer.mozilla.org/en/DOM/event.clientX 处的文档)。似乎 pageX
是您想要的 - 相对于当前页面的位置,与滚动无关。 pageX
是非标准的,可能未在 Chrome 中实现,但 jQuery 似乎以跨浏览器的方式提供此属性,请参阅 http://api.jquery.com/event.pageX/ .
关于javascript - 查找事件的位置(鼠标悬停在按钮上),用于 Firefox 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6434277/