Библиотека Isotope предназначена для динамического управления расположением элементов на веб-странице, обеспечивая фильтрацию, сортировку и анимацию. Для её использования необходимо правильно подключить скрипты и подготовить структуру HTML.
Наиболее быстрый способ начать работу с Isotope — подключение через
CDN. Это позволяет не скачивать библиотеку локально и всегда
использовать актуальную версию. Подключение осуществляется в
<head> или перед закрывающим тегом
<body>:
<!-- Подключение Isotope через CDN -->
<script src="https://unpkg.com/isotope-layout@3/dist/isotope.pkgd.min.js"></script>
Важные моменты при подключении через CDN:
@3
гарантирует использование стабильной версии 3.x.Для проектов, использующих сборщики модулей (Webpack, Vite, Parcel), предпочтительнее установка через менеджеры пакетов:
npm install isotope-layout
# или
yarn add isotope-layout
После установки библиотека импортируется в Jav * aScript:
import Isotope from 'isotope-layout';
Это обеспечивает интеграцию с модульной системой и возможность использования tree-shaking для оптимизации итогового бандла.
Isotope требует наличия контейнера и элементов внутри него. Структура должна быть следующей:
<div class="grid">
<div class="grid-item">Элемент 1</div>
<div class="grid-item">Элемент 2</div>
<div class="grid-item">Элемент 3</div>
</div>
После подключения скрипта необходимо создать экземпляр Isotope, указав контейнер и опции:
const grid = document.querySelector('.grid');
const iso = new Isotope(grid, {
itemSelector: '.grid-item', // элементы внутри контейнера
layoutMode: 'fitRows', // режим компоновки: fitRows, masonry, vertical, etc.
transitionDuration: '0.6s', // длительность анимации
});
Ключевые параметры при инициализации:
masonry создаёт “кирпичную” сетку,
fitRows — упорядоченную таблицу.Isotope не поставляется с готовыми CSS-стилями для сетки, поэтому рекомендуется самостоятельно определить размеры и отступы элементов:
.grid {
display: block;
}
.grid-item {
width: 200px;
margin: 10px;
float: left;
}
При использовании masonry важно задавать фиксированную
ширину элементов или использовать гибкие расчёты через CSS Grid или
Flexbox.
Если элементы создаются динамически (например, через AJAX),
необходимо запускать метод layout() после добавления
элементов:
// Добавление нового элемента
const newItem = document.createElement('div');
newItem.classList.add('grid-item');
newItem.textContent = 'Новый элемент';
grid.appendChild(newItem);
// Перестроение сетки
iso.appended(newItem);
Методы appended и prepended позволяют
корректно интегрировать новые элементы без полной переработки сетки.
new Isotope(container, options) задаёт логику работы.appended или layout для обновления
сетки.Эти шаги создают фундамент для последующей фильтрации, сортировки и анимации элементов на странице с использованием библиотеки Isotope.