2012-05-12 2 views
4

Я установил видовые тег в 480px так в iPhone (портретный режим) истинные размерами сайта являются:Неверная высота iPhone (jQuery)?

  1. 480x534px, когда верхняя панель видна
  2. 480x594px, когда верхний бар скрыт

Еще , jQuery(window).height() и window.innerHeight и jQuery(window).InnerHeight() ВСЕГДА возвращают 480x534px, и это создает разрыв 60px в нижней части сайта при попытке разместить контейнер height: 100%; width: 100%; поверх текущего содержимого (всплывающее окно).

Об этом сообщается как ошибка jQuery (и ошибка iPhone), но есть ли какое-либо обходное решение?

+0

Проверьте мой ответ на аналогичный вопрос , может помочь немного http://stackoverflow.com/questions/8205812/jquery-js-ios-4-and-document-height-problems –

+0

@DmitrySemenov Спасибо! Я нашел способ сделать это год назад, и я сообщил об этом как об ошибке jQuery. Они сказали, что это должно быть исправлено в jQuery 1.8 (и теперь у меня есть jQuery 1.9, так что, возможно, он исправлен). После обновления iOS (последние версии 6.0) произошли серьезные изменения, поэтому я уверен, что мы должны регулярно следить за такими вещами и обновлять скрипты/библиотеки/плагины :) – Atadj

ответ

1

Когда страница загружается на iPhone, появляется верхняя панель.
вот почему $(window).height() вернет реальный размер меньшего окна.
через некоторое время после того, как верхняя панель скользит вверх так, чтобы изменить размер окна.
, поэтому вы можете добавить константу в (window).height(), которая представляет верхний размер бара или hook up, до $(window).resize(), чтобы получить реальный размер после исчезновения верхней панели.

+0

Я извлекаю высоту до и после этого с тем же (неправильное) значение: window.addEventListener ("load", function() { window.scrollTo (0, 1); }); – Atadj

1

Обязательно используйте внешнюю высоту вместо внутренней высоты. К сожалению, JQuery-х $(window).outerHeight() не применим к окна (она возвращает то же самое, как $(window).height()) и документ элемент, так что вы должны сделать это в простой JavaScript, следующим образом:

(typeof window.outerHeight != 'undefined')?Math.max(window.outerHeight, $(window).height()):$(window).height() 
Смежные вопросы