Библиотека Packery используется для создания
динамических сеток с элементами, которые можно перемещать и выравнивать
по свободной форме. Одними из ключевых параметров, влияющих на
позиционирование элементов в сетке, являются
originLeft и
originTop. Эти свойства определяют
исходные точки отсчёта для расположения ячеек внутри контейнера.
originLeftoriginLeft — это булевое значение,
которое задаёт горизонтальный исходный угол, откуда начинается
размещение элементов:
true (по умолчанию) — элементы располагаются слева
направо.false — элементы располагаются справа налево.Применение этого свойства особенно полезно при создании интерфейсов
для языков с направлением текста справа налево (например, арабский или
иврит). При значении false Packery будет учитывать правый
край контейнера как точку отсчёта, что позволяет сохранять правильное
визуальное расположение.
Пример использования:
var grid = document.querySelector('.grid');
var pckry = new Packery(grid, {
itemSelector: '.grid-item',
gutter: 10,
originLeft: false
});
В этом примере элементы будут выстраиваться от правого края
контейнера, а расстояния между элементами, заданные gutter,
также будут учитываться справа налево.
originToporiginTop — булевое свойство,
определяющее вертикальное направление размещения элементов:
true (по умолчанию) — элементы располагаются сверху
вниз.false — элементы располагаются снизу вверх.Использование originTop: false может быть необходимо,
если требуется, чтобы новые элементы добавлялись в нижнюю часть
контейнера, либо для интерфейсов с вертикальной ориентацией, где базовая
линия должна располагаться внизу.
Пример:
var grid = document.querySelector('.grid');
var pckry = new Packery(grid, {
itemSelector: '.grid-item',
gutter: 10,
originTop: false
});
В этом случае первый добавленный элемент будет располагаться у нижнего края контейнера, а последующие элементы поднимутся вверх по мере добавления.
originLeft и originTopЭти два свойства могут использоваться одновременно для точного управления точкой отсчёта сетки. Комбинация всех возможных значений позволяет создавать четыре варианта позиционирования:
originLeft |
originTop |
Направление размещения |
|---|---|---|
| true | true | Слева направо, сверху вниз |
| false | true | Справа налево, сверху вниз |
| true | false | Слева направо, снизу вверх |
| false | false | Справа налево, снизу вверх |
Комбинированное использование обеспечивает гибкость при адаптивном дизайне, особенно при изменении размеров контейнера или при динамическом добавлении/удалении элементов.
Packery позволяет изменять эти свойства даже после создания
экземпляра сетки. Для этого используется метод option:
pckry.options.originLeft = false;
pckry.options.originTop = false;
pckry.layout(); // Перерасчет позиций элементов
После вызова layout() сетка пересчитывает позиции всех
элементов с учётом новых точек отсчёта, что позволяет мгновенно изменять
направление сетки без полного пересоздания экземпляра.
originLeft: false убедитесь, что CSS
контейнера поддерживает правильное выравнивание текста и направление
потока (direction: rtl), чтобы элементы выглядели
корректно.originLeft и
originTop на протяжении всей работы страницы.originTop: false и вертикальных анимаций
помогает создавать интерфейсы «снизу вверх», например для чат-приложений
или журналов событий.Эффективное использование originLeft и
originTop позволяет полностью контролировать логику
размещения элементов в сетке Packery, делая её гибкой для любых
направлений и языковых требований.