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