Метод addItems является одним из ключевых инструментов
динамического управления элементами сетки в библиотеке Isotope. Он
позволяет добавлять новые элементы в уже инициализированный экземпляр
Isotope без необходимости полной переработки всей сетки. Это особенно
полезно для ленивой загрузки контента, динамического обновления галерей
и интерфейсов с фильтрацией и сортировкой в реальном времени.
$grid.isotope('addItems', $newItems);
Метод принимает как одиночный элемент, так и коллекцию элементов. При этом каждый элемент автоматически получает все необходимые классы и стили, которые обеспечивают корректное отображение и анимацию внутри сетки.
Добавление в DOM Элементы, переданные в
addItems, должны быть предварительно созданы в DOM или
сгенерированы динамически. Метод добавляет их в контейнер сетки,
сохраняя текущий порядок элементов.
Интеграция с Isotope После добавления элементов Isotope обновляет внутренние массивы элементов, чтобы новые элементы учитывались при фильтрации, сортировке и анимации.
Анимация появления Если задан параметр
transitionDuration, новые элементы появляются с плавной
анимацией, аналогично элементам, добавленным при инициализации
сетки.
// Инициализация сетки
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
layoutMode: 'masonry'
});
// Создание новых элементов
var $newItems = $('<div class="grid-item">Новый элемент</div><div class="grid-item">Еще один элемент</div>');
// Добавление элементов в сетку
$grid.isotope('addItems', $newItems);
// Обновление сетки с анимацией
$grid.isotope('appended', $newItems);
Важный момент: метод addItems только добавляет элементы
в внутренние структуры Isotope. Для того чтобы они визуально появлялись
и правильно располагались в сетке, необходимо вызвать метод
appended.
addItems от
appendedaddItems — добавляет элементы только в
внутренние массивы Isotope, но не запускает перестройку
сетки.appended — сочетает функциональность
addItems и автоматически пересчитывает позиции элементов с
анимацией, делая новые элементы видимыми в сетке.Использование этих методов вместе позволяет разделять логическое добавление элементов и визуальную отрисовку, что полезно при пакетной загрузке большого количества элементов.
Фильтрация Новые элементы будут участвовать во
всех фильтрах сразу после вызова appended. Если необходимо
временно исключить новые элементы, можно присвоить им класс, который
будет исключен фильтром.
Сортировка При добавлении элементов через
addItems они не сортируются автоматически. Для сортировки
необходимо вызвать метод arrange.
$grid.isotope('arrange', {
sortBy: 'original-order'
});
var $newItem = $('<div class="grid-item">Динамический элемент</div>');
$grid.isotope('addItems', $newItem);
$grid.isotope('appended', $newItem);
Метод addItems обеспечивает гибкость управления
динамическим контентом в Isotope и является важной частью оптимизации
работы с крупными и интерактивными сетками. Использование его вместе с
appended и arrange позволяет точно
контролировать как внутреннее состояние сетки, так и визуальное
представление элементов.