Получить текущую позицию области просмотра в Safari для мобильных устройств (iPhone)

Я пытаюсь разместить div в центре области просмотра iphone. По сути, когда вы нажимаете на изображение, оно всплывает в середине экрана независимо от того, где вы прокручивали страницу до того, как щелкнули.

Это не так просто, как просто установить position: fixed; так как это приведет к тому, что начало координат будет вверху страницы, а не вверху области просмотра.

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

Есть ли специальный JavaScript API для iPhone или что-то, что я могу использовать для получения текущих координат области просмотра?

Спасибо, Тоби


person tobyc    schedule 13.02.2010    source источник


Ответы (1)


Глупо просто.

var scrollX = window.pageXOffset;
var scrollY = window.pageYOffset;

... дает вам текущую позицию окна.

person tobyc    schedule 13.02.2010
comment
Я не думаю, что это работает примерно для 30% людей (отсюда -2 в вашем ответе). У меня не работает. Всегда возвращает 0. - person Peter; 16.10.2012
comment
Оказывается, если вы проверяете положение прокрутки документа в iFrame, который не прокручивается, он всегда возвращает 0, и вам нужно проверить parent.window.pageYOffset ... - person Peter; 16.10.2012
comment
Хм, я не нахожусь в iframe, и он по-прежнему возвращает мне только 0. - person jennz0r; 23.03.2016
comment
@Peter Я думаю, проблема в том, что он не работает на iPad - person JoSch; 01.06.2020