Todos os componentes
MotionPager
Páginas deslizáveis a partir de dados: onboarding, carrosséis e painéis de abas.
WebReact NativeSeleção e paginação
Experimente
Uso mais curto
Onboarding.jsx<MotionPager
items={slides}
index={page}
onIndexChange={setPage}
gap={16}
renderItem={(slide) => <Slide slide={slide} />}
/>;
O que ele resolve para você
- As páginas seguem os deslizes e o arraste com o mouse, oferecem resistência nas pontas e se acomodam com a velocidade com que você solta.
- Um gesto rápido sempre vira uma página, e um gesto nunca vira mais de uma.
- A rolagem horizontal do trackpad também vira páginas, e a inércia final é ignorada.
- Setas, Home e End funcionam quando o paginador tem foco, e a rolagem vertical continua funcionando.
- As páginas que não estão ativas ficam inertes.
Use para
- Um fluxo de onboarding.
- Um carrossel de fotos.
- Painéis de abas deslizáveis junto com
MotionHighlight.
Props
| Prop | Tipo | Padrão | Descrição |
|---|
items | readonly T[] | —obrigatória | Seu array de dados. |
|---|
index | number | | A página exibida. Omita para o paginador cuidar da própria. |
|---|
defaultIndex | number | 0 | Página inicial quando index não é controlado. |
|---|
onIndexChange | (index, item) => void | | Roda com o índice e o item assim que um deslize, uma tecla ou a roda do mouse se acomoda. |
|---|
getKey | (item) => string | number | item.id | Retorna uma key única e estável para um item. Por padrão item.id, ou o próprio item para strings e números. |
|---|
renderItem | (item, { index, active }) => ReactNode | item.label | Desenha uma página; recebe o índice e se ela está ativa. |
|---|
gap | number | 0 | Espaço entre as páginas, em pixels. |
|---|
itemClassName | string | | Classe do elemento de cada item; itemStyle define o estilo inline. |
|---|
transition | Transition | spring | Uma curva de tempo { duration, easing } ou uma mola { tempo: 'spring', spring }. As molas mantêm o embalo quando interrompidas. |
|---|
As outras props vão para o elemento renderizado, então className, style e handlers de eventos funcionam normalmente.