Ошибка (специфично для iOS — Chrome): Когда я прокручиваю страницу вниз, нижняя панель навигации iOS скрывается, расширяя фактическую область просмотра. Если в этом развернутом состоянии я нажму кнопку «Добавить в корзину», оверлей загрузки появится, но оставит видимый пробел в нижней части экрана. Он не может покрыть недавно расширенную область просмотра. (Если я прокручиваю вверх и нижняя панель видна, наложение работает отлично).
Вот изображение, демонстрирующее проблему: Нажмите здесь.
Что я пробовал до сих пор (и ничего не помогло):
- Использование высоты: 100vh, 100dvh и высоты: 100%.
- Закрепление сверху: 0; внизу: 0; слева: 0; right: 0; (и современная вставка: 0).
- Внедрение наложения непосредственно в вместо , чтобы выйти из оболочек темы.
- Использование элемента и .showModal() (верхний слой).
- Массивная тень блока: 0 0 0 9999px rgba(...) хак для элемента div 0x0.
- Блокировка прокрутки путем добавления переполнения: скрыто; touch-action: none; для и .
- Динамический расчет точных размеров с помощью API window.visualViewport и применение их через JS.
Вопрос: Как я могу заставить оверлей позиции: фиксированный действительно покрывать всю область просмотра iOS, игнорируя любые манипуляции с DOM (например, преобразование или переполнение), выполняемые темой во время события щелчка? Есть ли какие-либо обходные пути для этой конкретной задержки мутации области просмотра iOS + DOM?
Любая помощь будет принята с благодарностью!
Подробнее здесь: https://stackoverflow.com/questions/799 ... en-overlay
Мобильная версия