Метод unstamp является важным
инструментом при работе с библиотекой Packery для динамического
управления расположением элементов сетки. Он позволяет “отменить
закрепление” ранее зафиксированных элементов, возвращая их в поток
компоновки.
Метод unstamp используется для
следующих целей:
stamp.Принцип работы: Когда элемент “штампуется”
(stamp), Packery исключает его из процесса расчета позиций
других элементов, учитывая его размеры и положение как фиксированное
ограничение. Вызов unstamp возвращает элемент в обычный
поток и позволяет Packery перерассчитать сетку с учетом этого
элемента.
packery.unstamp( elem );
Параметры:
elem – DOM-элемент или массив элементов, которые нужно
вернуть в поток компоновки.Возвращаемое значение: Метод не возвращает значения; его основная функция — изменение внутреннего состояния Packery и перерасчет сетки.
var grid = document.querySelector('.grid');
var pckry = new Packery(grid, {
itemSelector: '.grid-item',
gutter: 10
});
var stampedItem = document.querySelector('.stamped-item');
pckry.unstamp(stampedItem);
pckry.layout(); // перерасчет сетки
В этом примере элемент с классом .stamped-item
возвращается в поток сетки, и после вызова layout() Packery
корректно переставляет элементы.
var items = document.querySelectorAll('.stamped-item');
pckry.unstamp(items);
pckry.layout();
Массив элементов можно передать напрямую в unstamp, что
особенно удобно при динамическом удалении или добавлении нескольких
штампованных элементов.
stampМетоды stamp и
unstamp работают как противоположные
операции:
stamp(elem) — исключает элемент из потока и фиксирует
его положение.unstamp(elem) — возвращает элемент в поток для
нормального размещения.Это позволяет динамически управлять элементами сетки в зависимости от логики приложения: временно закреплять элементы, а затем возвращать их в перестановку.
unstamp обязательно выполнять
layout(), иначе Packery не пересчитает позиции
элементов.unstamp для нескольких элементов и вызывать
layout() один раз после всех изменений.Метод unstamp особенно полезен при создании интерфейсов
с динамическим содержимым:
Packery поддерживает плавные перестановки элементов с помощью
CSS-переходов. После unstamp можно применять анимацию:
pckry.unstamp(elem);
elem.style.transition = 'transform 0.4s';
pckry.layout();
Элемент плавно интегрируется в сетку, сохраняя визуальную целостность интерфейса.
unstamp после stamp для
возврата элементов в поток.layout() после изменения состояния
штампов.