@sloupone

Как улучшить код?

Собственно, что делает код: подключает Masonry, если элемент с нужным селектором вообще есть на странице и ширина окна больше 768 px .

Код под спойлером
(function membersListInit() {
  const grid = '.members-list__list';
  const options = {
    columnWidth: '.members-list__grid-sizer',
    itemSelector: '.members-list__item-container',
    horizontalOrder: true,
  };


  const elem = document.querySelector(grid) && !document.querySelector('.members-list_teaser');
  let isInit = false;
  let msnry;


  window.addEventListener('load', () => {
    if (window.innerWidth > 768 && elem) {
      msnry = new Masonry(grid, options);
      isInit = true;
    }
  });


  window.addEventListener('resize', () => {
    if (window.innerWidth >= 768 && elem) {
      if (!isInit) {
        msnry = new Masonry(grid, options);
        isInit = true;
      }
    } else if (isInit) {
      msnry.destroy();
      isInit = false;
    }
  });
}());


Есть ощущение, что я делаю что-то не так. Закидайте камнями.
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
window.addEventListener('load',   masonryOn768);
window.addEventListener('resize', masonryOn768);

function masonryOn768() {
    if (window.innerWidth >= 768 && elem) {
      if (!isInit) {
        msnry = new Masonry(grid, options);
        isInit = true;
      }
    } else if (isInit) {
      msnry.destroy();
      isInit = false;
    }
  }

Так лучше?
И непонятно что такое elem.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы