Задать вопрос
@fgehte

Почему не работает код при смене ориентации экрана?

Добрый день! Есть проблема в обновление кода при смене ориентации экрана. Для сетки с изображениями подключил либу Masonry js, вроде все работает если после ресайза обновлять страницу, но если сменить ориентацию экрана то код не подстраивается под него. В чем может быть проблема?
import Masonry from 'masonry-layout';

const masonryContainer = document.querySelector('.grid');
let gapMasonry = 0;

if (masonryContainer) {
  gapMasonry = parseInt(getComputedStyle(masonryContainer).getPropertyValue('--column-gap'));
}

function casesMasonry() {
  const msnry = new Masonry(masonryContainer, {
    itemSelector: '.grid__item',
    columnWidth: '.grid__item',
    gutter: gapMasonry,
    horizontalOrder: true,
    percentPosition: true,
    transitionDuration: 0,
    fitWidth: true,
  });
}

const initMasonry = () => {
  window.addEventListener('load', () => {
    casesMasonry();

    window.addEventListener('orientationchange', function () {
      casesMasonry();
    });
  });
};

export {initMasonry};
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
qertis
@qertis
Попробуйте проверять ориентацию экрана через следующий код:
function isLandscape() {
    if (window.matchMedia('(orientation: landscape)').matches) {
        return true;
    } else if (window.matchMedia('(orientation: portrait)').matches) {
        return false;
    }
    return true;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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