Метод remove библиотеки Muuri
предназначен для удаления элементов из сетки. Он является ключевым
инструментом при динамическом управлении контентом, когда требуется
удалять элементы без полного перерисовывания сетки.
grid.remove(elements, options)
elements — один или несколько
элементов, которые необходимо удалить. Может быть:
HTMLElement)HTMLElement[])NodeList)Item /
Item[])options — объект с дополнительными
настройками удаления:
removeElements (boolean, по умолчанию
true) — удалять ли DOM-элементы из документа после удаления
из сетки.layout (boolean, по умолчанию true) —
пересчитывать сетку после удаления.instant (boolean, по умолчанию false) —
удалить элемент мгновенно без анимации.sort (boolean, по умолчанию true) —
выполнять сортировку оставшихся элементов после удаления.filter (function) — функция фильтрации, которая должна
возвращать true, если элемент можно удалить.Удаление одного элемента с анимацией
const item = grid.getItem(element);
grid.remove(item);
В этом примере элемент плавно исчезнет из сетки, а оставшиеся элементы автоматически займут его место с анимацией.
Удаление нескольких элементов без удаления из DOM
const elements = document.querySelectorAll('.grid-item');
grid.remove(elements, { removeElements: false });
Элементы будут удалены из сетки, но останутся в DOM. Это удобно для временного скрытия элементов без разрушения структуры документа.
Мгновенное удаление элемента без анимации
grid.remove(item, { instant: true });
При использовании параметра instant: true элемент
исчезает сразу, без плавной анимации, что ускоряет операции с большим
количеством элементов.
Метод remove поддерживает фильтры через функцию
filter:
grid.remove(grid.getItems(), {
filter: item => item.getElement().classList.contains('delete')
});
В этом примере удаляются только элементы, у которых есть класс
delete. Остальные элементы сетки остаются нетронутыми.
Синхронизация с DOM По умолчанию метод не только
удаляет элемент из сетки, но и полностью из DOM. Если требуется оставить
элемент в документе, нужно явно указать
removeElements: false.
Перерасчёт сетки После удаления элемента сетка
автоматически пересчитывает позиции оставшихся элементов, если
layout: true. Это позволяет сохранять корректное
расположение элементов без необходимости вручную вызывать
grid.layout().
Возврат значений Метод возвращает массив
удалённых объектов Item. Это может быть полезно для
последующей работы с удалёнными элементами или их восстановления в
сетку.
const removedItems = grid.remove(elements);
console.log(removedItems); // массив Item объектов
instant: true, чтобы ускорить процесс удаления без лишней
анимации.removeElements: false и затем повторно добавлять элементы
через метод add.remove хорошо сочетается с фильтрацией и
сортировкой элементов, что позволяет создавать сложные динамические
интерфейсы, например, списки задач с возможностью массового
удаления.Метод remove является фундаментальным для динамического
управления сеткой Muuri, обеспечивая гибкость, контроль над DOM и
плавное взаимодействие с пользователем.