Tutti i componenti

MotionZoom

Un’immagine che si ingrandisce dal suo posto a schermo intero; trascinala via per chiuderla.

WebReact NativeOverlay

Provalo

Preparazione dell’esempio…

L’uso più breve

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

Di che cosa si occupa al posto tuo

  • Un clic, Invio o Spazio ingrandisce l’immagine da dove si trova fino a riempire lo schermo entro margin.
  • La copia ingrandita parte esattamente com’è la miniatura, con il ritaglio di object-fit e il raggio degli angoli.
  • zoomSrc compare in dissolvenza appena è caricata.
  • Un clic, Esc o un trascinamento la chiudono; la chiude anche un lancio rapido, mentre un trascinamento breve torna indietro con una molla.

Usalo per

  • Una griglia di foto.
  • Una galleria di prodotti.
  • Immagini dentro un articolo del blog.

Props

PropTipoPredefinitoDescrizione
srcstringL’immagine mostrata al suo posto.
zoomSrcstringUn’immagine più grande mostrata appena è caricata; mantieni le stesse proporzioni.
marginnumber24Spazio lasciato attorno all’immagine ingrandita, in pixel.
disabledbooleanfalseDisattiva lo zoom.
onZoomChange(zoomed) => voidViene eseguito con true quando è ingrandita e con false quando si chiude.
backdropStyleCSSPropertiesStile inline per lo sfondo.
transitionTransitionspringUna curva di timing { duration, easing } o una molla { tempo: 'spring', spring }. Le molle conservano lo slancio quando vengono interrotte.

Le altre props vanno all’elemento renderizzato, quindi className, style e gli event handler funzionano come sempre.

Web e React Native

L’overlay esiste solo durante lo zoom (sul web, una dialog nel top layer), quindi l’immagine può stare ovunque, anche dentro un paragrafo. Le altre props vanno all’img.

Su React Native passa source e zoomSource; l’overlay è un Modal trasparente.

Usato in questi esempi

Cerca

Scrivi per cercare nella documentazione.