2013-09-05 2 views
0

Я пытаюсь создать пятно разностной игры с jQuery. В принципе, несколько изображений сложены, расположены абсолютно в контейнере. Над контейнером находится заголовок страницы с логотипом и меню, которое занимает около 120 пикселей над контейнером изображений.Получение разной высоты по клику по прокрутке главной страницы

Когда кто-то нажимает на область внутри изображения, я помещаю туда новый div с правильной отметкой (V) или неправильным (красный X).

Я пытаюсь получить позицию мыши внутри элемента, используя следующий код (следующее используемого событие переменного й возвращаются в случае щелчка только, чтобы быть ясно):

var parentOffset = $(this).parent().offset(); 
var topOffset = e.clientY - offset.top; 

Моих проблема в том, что смещение от вершины изменяется, когда я немного прокручиваю страницу до области нижнего колонтитула, а затем я не устанавливаю новый маркер div на правильной высоте.

Когда я прокручиваюсь в верхней части страницы, метка позиционируется правильно.

Я создал такую ​​игру раньше, но не могу понять, почему внезапно вычисление неверно: \ Кажется, что я получаю расстояние минус высота прокрутки, но не уверен.

Спасибо за ваше понимание, Yanipan

+1

Попробуйте найти прокрутку смещения с помощью: '$ (window) .scrollTop()' –

+0

Спасибо Davor, использовал ваш совет, чтобы получить дельту высот :) – Yanipan

+0

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

ответ

1

Я играл с Firebug немного, и это выглядит как e.originalEvent.layerY именно то, что вы ищете.

Он всегда показывает абсолютные координаты вашего клика внутри объекта с щелчком, независимо от того, где прокручивается экран.

+0

Спасибо за ваш ответ Deathmic, но я на самом деле использовал подсказку Davors и просто вычислил дельту высот. Спасибо, что напомнили мне, что иногда отладка события - это простой способ. – Yanipan

Смежные вопросы