2010-08-19 246 views
17

我想要獲取相對於窗口的確切鼠標位置。jquery鼠標相對窗口的位置

這裏是我的問題...

  • document.height = 1600(實際文檔大小)
  • window.height = 400(可視範圍)

我需要相對於鼠標位置弄清楚該窗口,而不是pageY屬性提供的文檔。

這是一個很大的工具提示,它會彈出一個表項的mouesover。如果屏幕底部沒有足夠的空間(窗口最大),則工具提示顯示在指針上方,否則顯示在指針下方。這項工作正常,直到文檔大小大於pagesize(長表)。

感謝, 呂克

回答

34

您可以減去window從pageY的.scrollTop()獲得位置的窗口,像這樣:

var top = e.pageY - $(window).scrollTop(); 

You can give it a try here, take a look at the console

+0

你們真棒。那樣做了!謝謝!! – user425772 2010-08-19 21:51:28

+1

@lucl - 歡迎:)歡迎來到SO! – 2010-08-19 21:52:05

+0

偉大的解決方案,如此簡單。 OP應標記爲解決方案。 – 2015-03-06 18:51:40

0

如何處理document.body.scrollTop屬性,它包含您滾動的像素。我相信一個簡單的pageY - scrollTop應該就足夠了嗎?

4

那麼window.pageYOffset呢?

演示:

<html> 
<head> 
<style> 
    html,body {padding:0;margin:0} 
    #content {height:2048px;background-color:#ccc;} 
    #status {position:fixed;top:0;left:0;} 
</style> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript"> 
jQuery(document).ready(function(){ 
    $(document).mousemove(function(e){ 
     $('#status').html(e.pageX +', '+ (e.pageY - window.pageYOffset)); 
    }); 
}) 
</script> 
<body> 
<h2 id="status">0, 0</h2> 
<div id="content"></div> 
</body> 
</html> 
0
function showCoords(evt){ 
    alert(
    "clientX value: " + evt.clientX + "\n" 
    + "clientY value: " + evt.clientY + "\n" 
); 
} 

我認爲這是你在找什麼。詳細請參閱here from Mozilla Developer

相關問題