Alle komponenter

MotionList

En liste fra data, der kun animerer det, der ændrede sig.

WebReact NativeLister

Prøv det

Forbereder eksemplet…

Korteste brug

Todos.jsx
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;

Det klarer den for dig

  • Nye elementer kommer ind med en begrænset kaskade, mens uberørte elementer står stille.
  • Fjernede elementer forlader flowet og animeres ud, hvor de var, mens resten glider ind i hullet.
  • Omsorterede elementer glider til deres nye positioner.
  • Flytninger, der afbrydes af en anden ændring, bevarer deres hastighed.
  • present={false} animerer alle elementer ud, og playKey afspiller indgangen igen.

Brug den til

  • En opgaveliste.
  • Filtrerede søgeresultater.
  • En indkøbskurv.

Props

PropTypeStandardBeskrivelse
itemsreadonly T[]—påkrævetDit data-array.
getKey(item) => string | numberitem.idReturnerer en unik, stabil nøgle for et element. Standard er item.id, eller selve elementet for strenge og tal.
renderItem(item, index) => ReactNodeitem.labelTegner et element.
aselement'div'Elementet, der renderes.
itemAselement'li' | 'div'Elementet for hvert punkt.
itemClassNamestringKlasse for hvert punkts element; itemStyle sætter dets inline-style.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Hvordan elementer kommer ind og forlader.
distancenumber16Afstand for rise og slide i pixels.
staggernumber40Millisekunder mellem indkommende elementer.
order'forward' | 'reverse''forward'Kaskadens retning.
presentbooleantruefalse animerer alle elementer ud og bevarer layoutet; true bringer dem tilbage.
initialbooleantrueAfspil indgangen, når listen monteres.
playKeystring | numberAt ændre den afspiller indgangen igen.
transitionTransitionspringOvergang til elementer, der kommer ind og forlader.
layoutTransitionTransitionspringOvergang til elementer, der glider til nye positioner.

Andre props går til det renderede element, så className, style og event handlers virker som normalt.

Web og React Native

Hvert element får et wrapper-element (li inde i ul eller ol, ellers div; itemAs ændrer det), der styles med itemClassName.

Nøgler skal være unikke. Indpak listen i MotionHeight for også at animere dens samlede højde.

Brugt i disse eksempler

Søg

Skriv for at søge i dokumentationen.