ShadowOfCasper
@ShadowOfCasper
Middle User Interface Web Developer

Как побороть автоскрытие адресбара на мобилках без html overflow hidden?

Есть у меня такая проблема. Сталкивались с ней многие, и я тоже.
При скролле на мобилках скрывается адресная строка, после чего пересчитывается весь лэйаут что обращает весь интерфейс, завязанный на vh в приступ психоделической эпилепсии.
Как я решал это раньше? Чекал юзерагента (device js) и если он мобилка или планшет, девайс с автоскрывающейся адресной строкой, я ставил в html overflow hidden и скролл назначался на body. При этом адресная строка всегда оставалась в зоне видимости.
Сейчас сия фича у меня вызвала целую серию багов в проекте, ибо на скролле завязано сножество событий рендера контента, начиная от определения рендера данных в секции под главным слайдером (в зависимости от активного слайда меняется путь, рендерятся разные данные) заканчивая бесконечной прокруткой ленты блога. Я переназначал скроллера с window на body, но document.querySelector('body').addEventListener("scroll", handler) просто не отрабатывает. Не говоря уже о том, что по условию мне ещё и window.pageYOffset надо заменить - следовательно подмена скроллера - явно нехорошая идея.

Мне не помогло:
откат html overflow hidden и установка плагина VHChromeFix найденного на просторах github
удивительно, но также не помог откат html overflow hidden и установка всем элементам с vh el.style.height = window.innerHeight+'px'

Подкиньте, пжлст, какие-нибудь ещё варианты - я в тупике.
Спасибо
  • Вопрос задан
  • 32 просмотра
Пригласить эксперта
Ответы на вопрос 1
ShadowOfCasper
@ShadowOfCasper Автор вопроса
Middle User Interface Web Developer
Sry. Невнимательность. Не все vh я заменил на style.height = window.innerHeight. Всё таки это помогло.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы