Všechny komponenty
MotionPager
Stránky z dat k listování přejetím: onboarding, karusely a panely karet.
WebReact NativeVýběr a stránky
Vyzkoušejte
Nejkratší použití
Onboarding.jsx<MotionPager
items={slides}
index={page}
onIndexChange={setPage}
gap={16}
renderItem={(slide) => <Slide slide={slide} />}
/>;
Co za vás vyřeší
- Stránky sledují přejetí i tažení myší, za okraji kladou odpor a usadí se podle rychlosti puštění.
- Rychlé švihnutí vždy otočí stránku a jedno gesto nikdy neotočí víc než jednu.
- Vodorovné posouvání touchpadem také otáčí stránky a jeho setrvačný dojezd se ignoruje.
- Šipky, Home a End fungují, když má pager fokus, a svislé posouvání dál funguje.
- Stránky jiné než aktivní jsou neaktivní.
Použijte pro
- Onboarding.
- Karusel fotek.
- Panely karet k listování přejetím spárované s
MotionHighlight.
Props
| Prop | Typ | Výchozí | Popis |
|---|
items | readonly T[] | —povinné | Vaše pole dat. |
|---|
index | number | | Zobrazená stránka. Vynechte ji a pager si bude vlastní stránku držet sám. |
|---|
defaultIndex | number | 0 | Počáteční stránka, když index není řízený. |
|---|
onIndexChange | (index, item) => void | | Spustí se s indexem a položkou, jakmile se přejetí, klávesa nebo gesto kolečka usadí. |
|---|
getKey | (item) => string | number | item.id | Vrací jedinečný stabilní klíč položky. Ve výchozím stavu item.id, u řetězců a čísel samotnou položku. |
|---|
renderItem | (item, { index, active }) => ReactNode | item.label | Vykreslí stránku; dostane její index a to, zda je aktivní. |
|---|
gap | number | 0 | Mezera mezi stránkami v pixelech. |
|---|
itemClassName | string | | Třída pro prvek každé položky; itemStyle nastaví jeho inline styl. |
|---|
transition | Transition | spring | Křivka timing { duration, easing } nebo pružina { tempo: 'spring', spring }. Pružiny si při přerušení zachovávají hybnost. |
|---|
Ostatní props jdou do renderovaného prvku, takže className, style a obsluhy událostí fungují jako obvykle.
Použito v těchto příkladech