2011-05-06 145 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