Насколько я понимаю, window.innerHeight
должен возвращать размер области просмотра без браузера chrome (адресная строка, навигация, вкладки и т. Д. c.). Но, похоже, это не так в последней версии iOS13. Вместо этого есть две проблемы:
- ( Иногда * слишком мал в портретной ориентации ) Если вы переключаетесь из портретного режима в ландшафтный режим без открытых вкладок, а затем обратно в портретный режим, Значение
window.innerHeight
оказывается слишком маленьким (примерно размером с нижнюю панель навигации), давая эту ужасную белую полосу в нижней части экрана. См. Это обсуждение макруморов для более подробной информации: https://forums.macrumors.com/threads/is-this-a-mobile-safari-bug-white-space-appears-at-bottom-after-rotating-iphone.2209551/ - ( Иногда * слишком большой в альбомной ориентации ) Если у вас открыто несколько вкладок, "Показать вкладку" бар ", а затем поверните из портретного режима в ландшафтный режим, тогда
window.innerHeight
слишком большой, и нижняя часть экрана обрезается.
Даже после включения всех мыслимых тегов области просмотра и все их перестановки, это не похоже на работу. Я также посмотрел несколько «учебных пособий» о том, как решить эту проблему в iOS Safari, и на сегодняшний день все, что я проверял, не работает.
Я также попробовал все варианты window.innerHeight
, с более или менее одинаковым результатом:
- Новый API визуального окна просмотра возвращает те же результаты, не отличающиеся от window.innerHeight. Дно все еще усечено в альбомной ориентации с панелью вкладок, а в портретном режиме по-прежнему отображается белая полоса внизу.
document.documentElement.clientHeight
с различными перестановками CSS (с использованием 100vh
, 100%
и т. Д. 1049 *.) дает тот же результат. То же самое для getBoundingClientRect
для различных элементов div и комбинаций элементов div. window.outerHeight
и screen.height
дают размер полного экрана без браузера chrome, который обычно слишком велик и вызывает переполнение. - Также пробовал кучу других случайных вещей, которые я уже забыл (должны были делать заметки).
Вы можете вручную выдумать это для каждого устройства, если вы Можно угадать размер верхнего и нижнего браузера chrome, но это крайне мало agile. Я ищу решение, которое не включает создание гигантской справочной таблицы для каждой iOS конфигурации устройства и программного обеспечения.
Я пытаюсь создать полноэкранный элемент canvas для веб-игры, и это проблема блокирует мою способность грузить. Насколько я знаю, эта проблема присутствует только в iOS13. После недолгого осмотра я все еще не нашел хорошего решения.