Všetky komponenty
MotionPager
Stránky z údajov na listovanie potiahnutím: onboarding, karusely a panely kariet.
WebReact NativeVýber a stránky
Vyskúšajte
Najkratšie použitie
Onboarding.jsx<MotionPager
items={slides}
index={page}
onIndexChange={setPage}
gap={16}
renderItem={(slide) => <Slide slide={slide} />}
/>;
Čo za vás vyrieši
- Stránky sledujú potiahnutia aj ťahanie myšou, za okrajmi kladú odpor a usadia sa podľa rýchlosti pustenia.
- Rýchle švihnutie vždy otočí stránku a jedno gesto nikdy neotočí viac ako jednu.
- Vodorovné posúvanie touchpadom tiež otáča stránky a jeho zotrvačný dobeh sa ignoruje.
- Šípky, Home a End fungujú, keď má pager fokus, a zvislé posúvanie ďalej funguje.
- Stránky iné ako aktívna sú neaktívne.
Použite na
- Onboarding.
- Karusel fotiek.
- Panely kariet na listovanie potiahnutím spárované s
MotionHighlight.
Props
| Prop | Typ | Predvolené | Popis |
|---|
items | readonly T[] | —povinné | Vaše pole údajov. |
|---|
index | number | | Zobrazená stránka. Vynechajte ju a pager si bude vlastnú stránku držať sám. |
|---|
defaultIndex | number | 0 | Počiatočná stránka, keď index nie je riadený. |
|---|
onIndexChange | (index, item) => void | | Spustí sa s indexom a položkou, len čo sa potiahnutie, kláves alebo gesto kolieska usadí. |
|---|
getKey | (item) => string | number | item.id | Vracia jedinečný stabilný kľúč položky. Predvolene item.id, pri reťazcoch a číslach samotnú položku. |
|---|
renderItem | (item, { index, active }) => ReactNode | item.label | Vykreslí stránku; dostane jej index a to, či je aktívna. |
|---|
gap | number | 0 | Medzera medzi stránkami v pixeloch. |
|---|
itemClassName | string | | Trieda pre prvok každej položky; itemStyle nastaví jeho inline štýl. |
|---|
transition | Transition | spring | Krivka timing { duration, easing } alebo pružina { tempo: 'spring', spring }. Pružiny si pri prerušení zachovávajú hybnosť. |
|---|
Ostatné props idú do renderovaného prvku, takže className, style a obsluhy udalostí fungujú ako obvykle.
Použité v týchto príkladoch