0

我一直在尝试获取鼠标相对于元素的位置,但是突然出现了 Microsoft 的一个可爱的失败(或 jQuery 的失败,谁知道?)。

当页面滚动时,jQuerypageY是正确的,并且在 Chrome、Firefox 甚至 IE8 上都是正确的(嗯,我希望这是正确的行为?)。但是,在 IE9 及更高版本上,这pageY是相对于用户可见的顶部。
...我不擅长解释事情。看看这个。在第一个示例中,比较 Firefox/Chrome/Safari/Opera 和 IE9+ 之间的行为;位置将不一样(至少在我的情况下它们不一样)。

我的代码的简化版本以防万一,但我怀疑它是否有用或在这种情况下是否有用:

$("#element").click(function (e) {
    var pos = $(this).offset();
    console.log(e.pageX - pos.left, e.pageY - pos.top);
}

可能只是我在那里遗漏了一些巨大的东西,但它已经困扰了我好几个小时了。有没有办法以任何方式解决这种行为?

提前致谢!

4

1 回答 1

0

尝试 pageYOffset 和 pageXOffset。此外,您不会将 .pageXOffset 绑定到事件,而是绑定到元素 - $(window).pageXOffset 也是如此

于 2013-07-31T21:56:03.800 回答