Alle komponenter
MotionPager
Swipebare sider fra data: onboarding, karruseller og fanepaneler.
WebReact NativeValg og sider
Prøv det
Korteste brug
Onboarding.jsx<MotionPager
items={slides}
index={page}
onIndexChange={setPage}
gap={16}
renderItem={(slide) => <Slide slide={slide} />}
/>;
Det klarer den for dig
- Siderne følger swipes og musetræk, yder modstand forbi enderne og lander med din slip-hastighed.
- Et hurtigt svirp skifter altid side, og én gestus skifter aldrig mere end én.
- Vandret scroll med pegeplade skifter også side, og dens momentumhale ignoreres.
- Piletaster, Home og End virker, når pageren har fokus, og lodret scroll virker stadig.
- Andre sider end den aktive er inerte.
Brug den til
- Et onboarding-flow.
- En fotokarrusel.
- Swipebare fanepaneler sammen med
MotionHighlight.
Props
| Prop | Type | Standard | Beskrivelse |
|---|
items | readonly T[] | —påkrævet | Dit data-array. |
|---|
index | number | | Den viste side. Udelad den for at lade pageren holde styr på sin egen. |
|---|
defaultIndex | number | 0 | Startside, når index ikke er kontrolleret. |
|---|
onIndexChange | (index, item) => void | | Kører med indeks og element, så snart et swipe, en tast eller en hjulgestus lander. |
|---|
getKey | (item) => string | number | item.id | Returnerer en unik, stabil nøgle for et element. Standard er item.id, eller selve elementet for strenge og tal. |
|---|
renderItem | (item, { index, active }) => ReactNode | item.label | Tegner en side; får dens indeks, og om den er aktiv. |
|---|
gap | number | 0 | Afstand mellem sider i pixels. |
|---|
itemClassName | string | | Klasse for hvert punkts element; itemStyle sætter dets inline-style. |
|---|
transition | Transition | spring | En timingkurve { duration, easing } eller en fjeder { tempo: 'spring', spring }. Fjedre bevarer deres momentum, når de afbrydes. |
|---|
Andre props går til det renderede element, så className, style og event handlers virker som normalt.