mrvinil
11/3/2018 - 7:37 PM

Корректная высота окна vh в мобильных браузерах

.my-element {
  height: 100vh; /* Fallback for browsers that do not support Custom Properties */
  height: calc(var(--vh, 1vh) * 100);
}
// Этот вариант НЕ требует перезагрузку страницы после поворота устройства, НО есть скачек при скроле
// Сначала мы получаем высоту окна просмотра и умножаем ее на 1%, чтобы получить значение для каждой единицы
let vh = window.innerHeight * 0.01;
// Затем мы устанавливаем значение в пользовательском свойстве --vh в корневой каталог документа
document.documentElement.style.setProperty('--vh', `${vh}px`);

// Мы слушаем событие resize
window.addEventListener('resize', () => {
// Мы выполняем тот же сценарий
let vh = window.innerHeight * 0.01;
document.documentElement.style.setProperty('--vh', `${vh}px`);
});


// Этот вариант требует перезагрузку страницы после поворота устройства, ЗАТО нет скачка при скроле

// Сначала мы получаем высоту окна просмотра и умножаем ее на 1%, чтобы получить значение для каждой единицы
let vh = window.innerHeight * 0.01;
// Затем мы устанавливаем значение в пользовательском свойстве --vh в корневой каталог документа
document.documentElement.style.setProperty('--vh', `${vh}px`);