Alla komponenter
MotionPager
Svepbara sidor från data: introduktion, karuseller och flikpaneler.
WebbReact NativeUrval och sidor
Prova
Kortaste användning
Onboarding.jsx<MotionPager
items={slides}
index={page}
onIndexChange={setPage}
gap={16}
renderItem={(slide) => <Slide slide={slide} />}
/>;
Det här sköter den åt dig
- Sidorna följer svep och musdragningar, gör motstånd förbi ändarna och landar med din släpphastighet.
- En snabb snärt byter alltid sida, och en gest byter aldrig mer än en.
- Horisontell scrollning med styrplatta byter också sida, och dess momentumsvans ignoreras.
- Piltangenter, Home och End fungerar när pagern har fokus, och vertikal scrollning fungerar fortfarande.
- Andra sidor än den aktiva är inerta.
Använd den för
- Ett introduktionsflöde.
- En fotokarusell.
- Svepbara flikpaneler ihop med
MotionHighlight.
Props
| Prop | Typ | Standard | Beskrivning |
|---|
items | readonly T[] | —krävs | Din dataarray. |
|---|
index | number | | Sidan som visas. Utelämna den för att låta pagern hålla reda på sin egen. |
|---|
defaultIndex | number | 0 | Startsida när index inte är kontrollerat. |
|---|
onIndexChange | (index, item) => void | | Körs med index och objekt så fort ett svep, en tangent eller en hjulgest landar. |
|---|
getKey | (item) => string | number | item.id | Returnerar en unik, stabil nyckel för ett objekt. Standard är item.id, eller själva objektet för strängar och tal. |
|---|
renderItem | (item, { index, active }) => ReactNode | item.label | Ritar en sida; får dess index och om den är aktiv. |
|---|
gap | number | 0 | Avstånd mellan sidor i pixlar. |
|---|
itemClassName | string | | Klass för varje objektelement; itemStyle sätter dess inline-style. |
|---|
transition | Transition | spring | En timingkurva { duration, easing } eller en fjäder { tempo: 'spring', spring }. Fjädrar behåller sitt momentum när de avbryts. |
|---|
Andra props går till det renderade elementet, så className, style och händelsehanterare fungerar som vanligt.
Används i de här exemplen