Мобильное Сафари и X-Offset - PullRequest
0 голосов
/ 23 апреля 2011

Ранее я писал (https://stackoverflow.com/questions/5737833/adjusting-horizontal-offset-for-an-image-gallery-in-mobile-safari) об использовании Javascript для поиска смещения по оси x в окне просмотра в Mobile Safari, а затем применил его как значение на основе px к встроенному CSS элемента.

Пост был немного скучным и специфичным для этого приложения, поэтому я задам реальный вопрос здесь:

Есть ли способ определить смещение окна просмотра в Mobile Safari, а затем применить его к элементу в виде встроенного стиля?

Это будет необходимо не только для правильного размещения наложения галереи изображений, но и для использования именованных якорей по всему сайту. Насколько я понимаю, требуется некоторая хитрость JS, так как Mobile Safari не поддерживает обычные методы определения смещения по оси объекта (или области просмотра).

Ответы [ 2 ]

0 голосов
/ 26 апреля 2011

Мне удалось найти почти решение: я добавил marginLeft: window.pageXOffset + "px", ко всем четырем ссылкам на позиционированные div-оболочки в photoswipe.js.

Итак, теперь щелчок по фотографии приводит к тому, что средство просмотра фотографий появляется внутри окна просмотра, если оно вообще было прокручено.

Тем не менее, это не идеально: я вручную редактирую источник photoswipe.js, во-первых, и, во-вторых, галерея фактически не следует прокрутке пользователя (поэтому, когда пользователь прокручивает дальше вправо щелкает другое изображение, галерея появляется там, где была ее первая позиция).

Это близко к исправлению. Как я могу заставить фотогалерею динамически выполнять прокрутку пользователя, желательно без редактирования исходного кода photoswipe.js?

0 голосов
/ 23 апреля 2011

Я не совсем уверен, понимаю ли я ваш вопрос, но в javascript для мобильного сафари (например, Iphone, Ipod, Ipad) с использованием jquery я использую следующие строки, чтобы расположить слои div с z-index друг над другом. <pre>var left1 = jQuery("div#Layout_Border_div").offset().left; var top1 = jQuery("div#Layout_Border_div").offset().top; jQuery("div#LayoutPage_Backward"). css( { position: "absolute","left": (left1) + "px","top": (top1) + "px" } );

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

...