Я я пытаюсь определить, на будущее и не зависит от устройства, когда отображается адресная строка в браузере iPhone. Это панель инструментов, которая отображается вверху для отображения URL. Его можно скрыть, вызвав:
window.scrollTo(0, 0)
Что я хотел бы сделать, так это определить, когда оно показывается (тем самым уменьшая доступное пространство для просмотра), и установить таймер, чтобы скрыть его снова через секунду или около того. Чаще, чем это, и это будет довольно раздражающим, поскольку пользователи не смогут получить доступ к адресной строке.
Я попытался проверить window.pageYOffset
, к сожалению, это возвращает ноль, если видна любая часть панели URL.
Я не хочу жестко программировать любые размеры на iPhone и сравнивать их с текущим размером области просмотра. Это слишком хрупко.
Кто-нибудь знает решение здесь?
Свойство window.innerHeight - это то, что вы ищете. Это высота фактического содержимого на экране. Она значительно меньше, когда видна панель инструментов в верхней части, потому что там меньше места для содержимого. Есть небольшая проблема, которую я не могу решить на своем iPhone 4 - window.innerHeight иногда возвращает на 3 пикселя меньше при определенных положениях прокрутки экрана.
Я создал для вас пример, который делает более или менее то, о чем вы просили, он должен по крайней мере помочь вам начать:
http://jsfiddle.net/rUSEb/show/light (проверьте его на своем iphone).