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

PropTipoPredefinitoDescrizione
itemsreadonly T[]—obbligatoriaIl tuo array di dati.
indexnumberLa pagina mostrata. Se la ometti, il pager gestisce la propria.
defaultIndexnumber0Pagina iniziale quando index non è controllato.
onIndexChange(index, item) => voidViene eseguito con l’indice e l’elemento appena uno swipe, un tasto o un gesto della rotellina si assesta.
getKey(item) => string | numberitem.idRestituisce una key unica e stabile per un elemento. Di default è item.id, oppure l’elemento stesso per stringhe e numeri.
renderItem(item, { index, active }) => ReactNodeitem.labelDisegna una pagina; riceve il suo indice e se è attiva.
gapnumber0Spazio tra le pagine, in pixel.
itemClassNamestringClasse per l’elemento di ogni voce; itemStyle imposta il suo stile inline.
transitionTransitionspringUna 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.

Web e React Native

index può essere controllato (onIndexChange(index, item) segnala ogni assestamento) oppure lasciato al pager con defaultIndex.

Lo stesso componente e le stesse props funzionano su React Native.

Usato in questi esempi

Cerca

Scrivi per cercare nella documentazione.