Подтвердить что ты не робот

Окно относительной позиции мыши jQuery

Я пытаюсь получить точную позицию мыши относительно окна.

Вот моя проблема...

  • document.height= 1600 (фактический размер документа)
  • window.height= 400 (доступно для просмотра)

Мне нужно выяснить положение мыши относительно окна, а не документ, который предоставляет атрибут pageY.

Это для большой всплывающей подсказки, которая появляется в mouesover для элемента таблицы. Если в нижней части экрана недостаточно места (окно максимально), то всплывающая подсказка отображается над указателем, в противном случае - под указателем. Это отлично работает до тех пор, пока размер документа больше, чем размер страницы (длинная таблица).

Спасибо, Люк

4b9b3361

Ответ 2

А как насчет 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>

Ответ 3

Как насчет атрибута document.body.scrollTop, он содержит прокрученные пиксели. Я полагаю, что тогда достаточно простой страницыY - scrollTop?

Ответ 4

function showCoords(evt){
  alert(
    "clientX value: " + evt.clientX + "\n"
    + "clientY value: " + evt.clientY + "\n"
  );
}

Я думаю, что это то, что вы ищете. Подробнее см. от разработчика Mozilla.