Запретить прокрутку на высоте 100 % при открытой виртуальной клавиатуре?CSS

Разбираемся в CSS
Ответить Пред. темаСлед. тема
Гость
 Запретить прокрутку на высоте 100 % при открытой виртуальной клавиатуре?

Сообщение Гость »


У меня есть приложение для чата с прикрепленными элементами верхнего и нижнего колонтитула. Когда мобильная виртуальная клавиатура открыта, я устанавливаю высоту документа window.visualViewport.height. Например. если высота браузера составляет 1000 пикселей, а виртуальная клавиатура — 400 пикселей, то window.visualViewport.height равна 600 пикселей, а и установлены на 600 пикселей. Верхний и нижний колонтитулы будут корректно отображаться в области просмотра размером 600 пикселей.

Однако пользователи по-прежнему могут прокручивать всю страницу вверх на 400 пикселей, то есть внизу они увидят 400 пикселей пустого пространства. Как я могу предотвратить появление этого пустого места, сохраняя при этом липкий верхний/нижний колонтитул?

Я пробовал:
[*]Обнаружение событий прокрутки, но они не запускаются. [*]Использование IntersectionObserver для элемента ниже области просмотра 600 пикселей, но он никогда не срабатывает. [*]Использование position: fix в нижнем колонтитуле, но он не прилипает к нижней части при прокрутке. [*]Позиция прокрутки документа по оси Y всегда равна 0 [*]Настройка navigator.virtualKeyboard.overlaysContent ничего не дает
В основном тестировалось в Android + Chrome, но та же проблема возникает и в iOS + Safari.

Демонстрационное видео, первое пустое пространство внизу — это клавиатура: https://i.imgur.com/OMSXAAt.mp4
Изменить
Я нашел хакерское решение, используя window.visualViewport.addEventListener('scroll', ...). При прокрутке я бы добавил в верхнюю часть страницы отступы, равные window.visualViewport.offsetTop. Однако существует некоторая задержка, поэтому пользователи могут немного прокрутить, а затем запускается обработчик прокрутки. В iOS Safari задержка может составлять более 1 секунды. Есть ли лучшее решение?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Запретить прокрутку на высоте 100 % при открытой виртуальной клавиатуре?
    Гость » » в форуме Javascript
    0 Ответы
    65 Просмотры
    Последнее сообщение Гость
  • Запретить прокрутку на высоте 100 % при открытой виртуальной клавиатуре?
    Anonymous » » в форуме CSS
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Запретить прокрутку на высоте 100 % при открытой виртуальной клавиатуре?
    Anonymous » » в форуме CSS
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Запретить прокрутку на высоте 100 % при открытой виртуальной клавиатуре?
    Anonymous » » в форуме CSS
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • IOS фокусируется на вводе и открытой виртуальной клавиатуре
    Anonymous » » в форуме IOS
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous

Вернуться в «CSS»