SortableJS — это мощная библиотека для создания интерактивного
перетаскивания элементов в списках и сетках. Две опции,
forceFallback и fallbackClass, позволяют гибко
управлять поведением drag-and-drop и кастомизацией интерфейса во время
операции перетаскивания.
forceFallbackНазначение: forceFallback принудительно
включает fallback-режим перетаскивания, игнорируя нативную поддержку
браузеров. В обычном режиме SortableJS использует нативный HTML5
drag-and-drop, но иногда это может приводить к нежелательному поведению
в старых браузерах или при сложных кастомных интерфейсах. Включение
fallback-режима решает эти проблемы.
Синтаксис:
new Sortable(el, {
forceFallback: true
});
Механизм работы:
forceFallback установлен в true,
SortableJS не использует нативный drag-and-drop.position: absolute) и
отслеживания мыши через события mousemove.Примеры применения:
fallbackClassНазначение: fallbackClass позволяет
задавать CSS-класс для элемента, который временно создаётся и
перемещается при fallback-режиме. Этот элемент — визуальная
копия оригинала, которая следует за курсором во время
drag-and-drop.
Синтаксис:
new Sortable(el, {
forceFallback: true,
fallbackClass: 'my-dragging'
});
Механизм работы:
При активации fallback-режима SortableJS создаёт клон перетаскиваемого элемента.
Клону автоматически присваивается класс, указанный в
fallbackClass.
Этот класс позволяет задавать:
Пример CSS:
.my-dragging {
opacity: 0.8;
border: 2px dashed #007bff;
background-color: #e6f0ff;
transform: scale(1.05);
pointer-events: none;
}
Ключевые особенности:
pointer-events: none предотвращает случайное
взаимодействие с клоном.forceFallback и fallbackClassfallbackClass
имеет смысл только если forceFallback: true.fallbackClass.transition) или эффекты
тени (box-shadow), чтобы создать эффект «поднятого»
элемента.fallbackClass.z-index, чтобы он не перекрывался другими элементами
страницы.fallbackClass с опцией animation в SortableJS
для плавного перемещения элементов при drop.Эти две опции совместно обеспечивают полное визуальное и
функциональное управление drag-and-drop: forceFallback
гарантирует предсказуемость поведения, а fallbackClass
позволяет создавать визуально привлекательные и информативные эффекты
перетаскивания.