2011-05-06 115 views
3

这应该通常很容易,我想跟踪鼠标移动。我有能力捕捉XY合作伙伴。跟踪鼠标移动

但是,据我所知,这将根据浏览器的大小而有所不同,对吧?

如果是这样,任何人都可以推荐其他东西来跟踪,以确保我的结果是准确的?

P.S我用下面的Jquery的例子

$("html").mousemove(function(e){ 
var pageCoords = "(" + e.pageX + ", " + e.pageY + ")"; 
var clientCoords = "(" + e.clientX + ", " + e.clientY + ")"; 
$("span:first").text("(e.pageX, e.pageY) - " + pageCoords); 
$("span:last").text("(e.clientX, e.clientY) - " + clientCoords); 
}); 
+0

你面对的问题会受到不同页面大小的影响? – Rob 2011-05-06 20:58:24

+0

如果OP要跟踪鼠标移动,如果页面内容居中,一个大的浏览器窗口将导致较大的x值。 – Dutchie432 2011-05-06 20:59:17

+1

PS:做了一个小提琴:http://fiddle.jshell.net/t2AG2/6/show/ – 2011-05-06 21:00:32

回答

1

坐标是独立于浏览器的大小。

希望这会有所帮助。欢呼声

PS:使用$(window).mousemove$(document).mousemove而不是$("html").mousemove,这是一个更好的做法。

+1

但是,举例来说,如果某人在800x600浏览器屏幕上并向下滚动页面会发生什么情况,这些尺寸不会代表浏览器在滚动后当前浏览页面的视图吗? – Steve 2011-05-06 21:25:46

+0

'pageY'为您提供相对于文档原点的鼠标位置,所以如果鼠标位于文档顶部下方200像素处,并且用户向下滚动100,则鼠标现在将处于300. – jasongetsdown 2011-05-24 20:35:37

+1

'clientY'为您提供了相对于浏览器视口的鼠标位置,所以当页面滚动时它不会改变。通常'pageY'是你想要的,因为它报告了鼠标相对于你的内容的位置。更多信息请参阅https://developer.mozilla.org/en/DOM/event.pageY和https://developer.mozilla.org/en/DOM/event.clientY。 – jasongetsdown 2011-05-24 20:42:26