Tous les composants

MotionZoom

Une image qui s’agrandit depuis sa place jusqu’au plein écran ; faites-la glisser pour la fermer.

WebReact NativeSuperpositions

Essayer

Préparation de l’exemple…

Usage minimal

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

Ce qu’il gère pour vous

  • Un clic, Entrée ou Espace agrandit l’image depuis sa position jusqu’à remplir l’écran dans les limites de margin.
  • La copie agrandie commence exactement comme la vignette, avec son recadrage object-fit et son rayon d’angle.
  • zoomSrc apparaît en fondu une fois chargée.
  • Un clic, Échap ou un glisser la referme ; un lancer rapide aussi, et un glisser court revient avec un ressort.

À utiliser pour

  • Une grille de photos.
  • Une galerie de produits.
  • Des images dans un article de blog.

Props

PropTypeDéfautDescription
srcstringL’image affichée en place.
zoomSrcstringUne image plus grande affichée une fois chargée ; gardez le même rapport d’aspect.
marginnumber24Espace conservé autour de l’image agrandie, en pixels.
disabledbooleanfalseDésactive le zoom.
onZoomChange(zoomed) => voidS’exécute avec true à l’agrandissement et false à la fermeture.
backdropStyleCSSPropertiesStyle en ligne du fond.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.

Les autres props vont à l’élément rendu : className, style et les gestionnaires d’événements fonctionnent comme d’habitude.

Web et React Native

La superposition n’existe que pendant le zoom (un dialog de la couche supérieure sur le web) : l’image peut donc se trouver n’importe où, même dans un paragraphe. Les autres props vont à l’img.

Sur React Native, passez source et zoomSource ; la superposition est un Modal transparent.

Utilisé dans ces exemples

Rechercher

Tapez pour rechercher dans la documentation.