Toate componentele

MotionZoom

O imagine care se mărește de la locul ei la ecran complet; trageți-o deoparte pentru a o închide.

WebReact NativeSuprapuneri

Încercați

Se pregătește exemplul…

Cea mai scurtă utilizare

Photo.jsx
<MotionZoom
  src={photo.thumb}
  zoomSrc={photo.full}
  width={240}
  height={160}
  style={{ objectFit: 'cover', borderRadius: 12 }}
/>;

Ce rezolvă în locul dumneavoastră

  • Un clic, Enter sau Space mărește imaginea de unde se află până umple ecranul în limita margin.
  • Copia mărită pornește exact cum arată miniatura, cu decupajul object-fit și raza colțurilor.
  • zoomSrc apare treptat după ce s-a încărcat.
  • Un clic, Escape sau tragerea deoparte o închide; o aruncare rapidă o închide și ea, iar o tragere scurtă revine cu arc.

Folosiți-o pentru

  • O grilă de fotografii.
  • O galerie de produse.
  • Imagini dintr-o postare de blog.

Props

PropTipImplicitDescriere
srcstringImaginea afișată pe loc.
zoomSrcstringO imagine mai mare, afișată după ce s-a încărcat; păstrați același raport de aspect.
marginnumber24Spațiul lăsat în jurul imaginii mărite, în pixeli.
disabledbooleanfalseDezactivează zoomul.
onZoomChange(zoomed) => voidRulează cu true la mărire și cu false la închidere.
backdropStyleCSSPropertiesStil inline pentru fundal.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.

Celelalte props merg la elementul randat, așa că className, style și handlerele de evenimente funcționează ca de obicei.

Web și React Native

Suprapunerea există doar cât e mărită (un dialog în stratul superior pe web), așa că imaginea poate sta oriunde, chiar și într-un paragraf. Celelalte props merg la img.

În React Native transmiteți source și zoomSource; suprapunerea este un Modal transparent.

Folosită în aceste exemple

Căutare

Tastați pentru a căuta în documentație.