1

在 IE 7、8、9、chrome 和 firefox 中,mouseHandler 上的 pageX/Y 属性是指相对于页面顶部的位置,而 clientX/Y 属性是相对于当前视口的位置。在 IE 10 中,看起来 pageX/Y 与 clientX/Y 相同。有没有已知的工作?

您可以尝试使用此http://jsfiddle.net/FCTUW/2/ ,只需滚动到右下角的页面底部,然后将鼠标移到灰色矩形上。

这是用于查找坐标的代码,因为 SO 想要代码...

canvas.mousemove(function(e){
var pageCrds = '('+ e.pageX +', '+ e.pageY +')',
    clientCrds = '('+ e.clientX +', '+ e.clientY +')';

有谁知道为什么要进行此更改,或者如何获得正确的页面坐标?

4

1 回答 1

1

我没有看到与您相同的结果。您可能没有查看脚本的实际结果 - 或者您可能不小心将相同的属性写了两次。无论哪种方式,我下面的结果都来自 Internet Explorer 10,在 Windows 8 上运行您的演示。

在此处输入图像描述

这符合MSDN关于clientpage价值观的陈述:

客户端坐标不反映页面的滚动偏移量。要获取鼠标指针相对于文档左上角的坐标,请使用 pageX 和 pageY 属性。

于 2013-01-24T02:10:48.110 回答