Библиотека Isotope предоставляет мощный инструмент для организации и фильтрации элементов на веб-странице, при этом активно используя систему событий, позволяющую отслеживать все ключевые моменты работы с сеткой. События Isotope делятся на несколько категорий: события инициализации, фильтрации, сортировки, добавления/удаления элементов и завершения анимации. Ниже приведён полный разбор этих событий с описанием их назначения и особенностей использования.
arrangeComplete Срабатывает после того,
как Isotope завершает процесс расположения всех элементов на странице с
учётом фильтров и сортировки. Используется для:
$grid.on('arrangeComplete', function(event, filteredItems){
console.log('Количество элементов после фильтрации:', filteredItems.length);
});
layoutComplete Вызывается после
завершения размещения элементов в DOM, вне зависимости от фильтров.
Отличается от arrangeComplete тем, что не учитывает
фильтрацию, только финальное расположение.
$grid.on('layoutComplete', function(event, laidOutItems){
console.log('Все элементы расположены:', laidOutItems);
});
filter Происходит при применении
фильтрации к элементам сетки. Это событие позволяет перехватывать момент
до начала анимации и, например, динамически изменять параметры
фильтрации.
$grid.on('filter', function(event, filter){
console.log('Применён фильтр:', filter);
});
arrangeComplete также относится к
фильтрации, поскольку срабатывает после применения фильтра и
перестановки элементов.
sortByChange Срабатывает при изменении
параметра сортировки. Позволяет реагировать на выбор сортировки,
например, обновлять интерфейс кнопок или сохранять состояние.
$grid.on('sortByChange', function(event, sortBy, sortAscending){
console.log('Сортировка изменена на:', sortBy, 'Порядок:', sortAscending ? 'возр.' : 'убыв.');
});
arrangeComplete после сортировки
сообщает о завершении перестановки элементов, аналогично фильтрации.
append Срабатывает при добавлении новых
элементов в контейнер Isotope. Позволяет запускать анимацию входа новых
элементов или выполнять дополнительные действия после добавления.
$grid.on('append', function(event, items){
console.log('Добавлены элементы:', items);
});
removeComplete Вызывается после
удаления элементов из сетки. Это ключевое событие для очистки DOM или
запуска логики, зависящей от количества оставшихся элементов.
$grid.on('removeComplete', function(event, removedItems){
console.log('Удалены элементы:', removedItems);
});
layoutComplete Помимо инициализации,
это событие срабатывает после всех анимаций перестановки элементов, что
позволяет запускать визуальные эффекты или уведомления пользователя о
завершении.
arrangeComplete Используется для
синхронизации действий после фильтрации и сортировки, включая запуск
других JS-компонентов, зависимых от расположения элементов.
.on.filteredItems, laidOutItems,
items, removedItems).filter и затем arrangeComplete..off, особенно при динамическом обновлении
сетки.arrangeComplete для подсчёта элементов
после фильтрации или сортировки.layoutComplete для сложных анимаций
элементов, не зависящих от фильтров.append и
arrangeComplete, чтобы корректно отображать новые элементы
в существующей сетке.Полная работа с событиями Isotope позволяет создавать динамичные, отзывчивые и интерактивные сетки, где каждое изменение состояния элементов может быть точно отслежено и использовано для дальнейших действий в интерфейсе.