Tutti i componenti
MotionPager
Pagine da scorrere con lo swipe a partire dai dati: onboarding, caroselli e pannelli a tab.
WebReact NativeSelezione e pagine
Provalo
Preparazione dell’esempio…
L’uso più breve
Onboarding.jsx<MotionPager
items={slides}
index={page}
onIndexChange={setPage}
gap={16}
renderItem={(slide) => <Slide slide={slide} />}
/>;
Di che cosa si occupa al posto tuo
- Le pagine seguono gli swipe e i trascinamenti del mouse, fanno resistenza oltre le estremità e si assestano con la velocità del tuo rilascio.
- Un colpo rapido gira sempre una pagina, e un gesto non ne gira mai più di una.
- Anche lo scroll orizzontale del trackpad gira le pagine, e la sua coda di inerzia viene ignorata.
- Tasti freccia, Home e Fine funzionano quando il pager ha il focus, e lo scroll verticale continua a funzionare.
- Le pagine diverse da quella attiva sono inerti.
Usalo per
- Un flusso di onboarding.
- Un carosello di foto.
- Pannelli a tab con lo swipe abbinati a
MotionHighlight.
Props
| Prop | Tipo | Predefinito | Descrizione |
|---|
items | readonly T[] | —obbligatoria | Il tuo array di dati. |
|---|
index | number | | La pagina mostrata. Se la ometti, il pager gestisce la propria. |
|---|
defaultIndex | number | 0 | Pagina iniziale quando index non è controllato. |
|---|
onIndexChange | (index, item) => void | | Viene eseguito con l’indice e l’elemento appena uno swipe, un tasto o un gesto della rotellina si assesta. |
|---|
getKey | (item) => string | number | item.id | Restituisce una key unica e stabile per un elemento. Di default è item.id, oppure l’elemento stesso per stringhe e numeri. |
|---|
renderItem | (item, { index, active }) => ReactNode | item.label | Disegna una pagina; riceve il suo indice e se è attiva. |
|---|
gap | number | 0 | Spazio tra le pagine, in pixel. |
|---|
itemClassName | string | | Classe per l’elemento di ogni voce; itemStyle imposta il suo stile inline. |
|---|
transition | Transition | spring | Una curva di timing { duration, easing } o una molla { tempo: 'spring', spring }. Le molle conservano lo slancio quando vengono interrotte. |
|---|
Le altre props vanno all’elemento renderizzato, quindi className, style e gli event handler funzionano come sempre.