Перейти к содержимому
v2.5.0
English
Русский
Документация

SnapScroller

SnapScroller — составной компонент для горизонтального постраничного пролистывания на основе CSS scroll-snap.

Пропсы корня

ПропТипПо умолчанию
refRef<HTMLDivElement>—
Ref на элемент скроллера.
apiRefRef<SnapScrollerApiRef>—
Ref на императивный API скроллера. Предоставляет element и методы prev() и next() для программного управления.
defaultIndexnumber—
Начальный индекс элемента, к которому выполняется привязка при монтировании.
onScrollSnapChange(element: HTMLElement, index: number) => void—
Вызывается, когда операция прокрутки с привязкой полностью завершена и скроллер остановился на новом индексе привязки. Колбэк вызывается после завершения всех анимаций прокрутки и привязки, когда активная позиция привязки считается стабильной.
onScrollSnapChanging(element: HTMLElement, index: number) => void—
Вызывается, пока операция прокрутки с привязкой идёт и активный индекс привязки ещё меняется. Колбэк может вызываться несколько раз за одну прокрутку или свайп, пока скроллер приближается к конечной позиции привязки. Полезен для оптимистичных обновлений интерфейса, превью или синхронизации промежуточного состояния во время прокрутки.

Также принимает все атрибуты <div>.

Дочерние части

  • SnapScrollerContent: элемент с привязкой и index.

SnapScrollerContent

ПропТипПо умолчанию
indexобязательныйnumber—
Порядковый индекс элемента внутри SnapScroller. Используется для определения страницы привязки через data-index элемента.
asChildbooleanfalse
Рендерит содержимое как дочерний элемент (через Slot) вместо нативного <div>. Атрибуты и ref остаются привязанными к переданному дочернему элементу.
refRef<HTMLDivElement>—
Внешний ref на корневой элемент элемента. Объединяется с внутренним itemRef(index), чтобы участвовать в логике привязки.

Также принимает все атрибуты <div>.

Типы

  • SnapScrollerProps
  • SnapScrollerContentProps
  • SnapScrollerApiRef

Модель состояния

  • Корень вычисляет промежуточный и зафиксированный индексы привязки по позиции прокрутки.
  • apiRef предоставляет prev(), next(), прокрутку по ключу и измерения.
  • Регистрация дочернего содержимого основана на индексах и должна оставаться стабильной между рендерами.