Лучший способ игнорировать изменение размера окна при добавлении / удалении элементов управления мобильного веб-браузера? - PullRequest
0 голосов
/ 31 января 2020

Когда пользователь прокручивает веб-сайт вверх и вниз с помощью мобильного Edge, мобильного Chrome и т. Д. c, эти браузеры добавляют / удаляют такие элементы, как строка заголовка, элементы управления назад / вперед и т. Д. c, в пользовательский интерфейс браузера. .

Это вызывает resize события на window.

Перед прокруткой вниз:

enter image description here

После прокрутка вниз - window.innerHeight изменилось:

enter image description here

В настоящее время я подхожу к проблеме, выполняя свое изменение размера только при изменении ширины, игнорируя изменения в высота:

  // 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;
  };

Есть ли лучший способ? Каков наилучший способ игнорировать изменение размера окна при добавлении / удалении элементов управления мобильного веб-браузера?

...