Когда пользователь прокручивает веб-сайт вверх и вниз с помощью мобильного Edge, мобильного Chrome и т. Д. c, эти браузеры добавляют / удаляют такие элементы, как строка заголовка, элементы управления назад / вперед и т. Д. c, в пользовательский интерфейс браузера. .
Это вызывает resize
события на window
.
Перед прокруткой вниз:
После прокрутка вниз - window.innerHeight
изменилось:
В настоящее время я подхожу к проблеме, выполняя свое изменение размера только при изменении ширины, игнорируя изменения в высота:
// Mobile Edge, Chrome etc will trigger spurious `resize` events on window when a user scrolls up and down.
// So we only do window resize work when the width changes.
var previousWidth = window.innerWidth;
var isWindowWidthChange = function() {
log(`Previouswidth is ${previousWidth}, new width is ${window.innerWidth}`);
if (window.innerWidth !== previousWidth) {
previousWidth = window.innerWidth;
return true;
}
return false;
};
Есть ли лучший способ? Каков наилучший способ игнорировать изменение размера окна при добавлении / удалении элементов управления мобильного веб-браузера?