MotionZoom
Ein Bild, das von seinem Platz auf Vollbild zoomt; zum Schließen wegziehen.
WebReact NativeOverlays
Ausprobieren
Beispiel wird vorbereitet…
Kürzeste Nutzung
<MotionZoom
src={photo.thumb}
zoomSrc={photo.full}
width={240}
height={160}
style={{ objectFit: 'cover', borderRadius: 12 }}
/>;Was sie dir abnimmt
- Ein Klick, Enter oder Leertaste zoomt das Bild von seiner Position aus, bis es den Bildschirm innerhalb von
marginfüllt. - Die vergrößerte Kopie startet genau so, wie das Vorschaubild aussieht – mit
object-fit-Ausschnitt und Eckenradius. zoomSrcblendet ein, sobald es geladen ist.- Ein Klick, Escape oder Wegziehen schließt es; ein schneller Wurf auch, und kurzes Ziehen federt zurück.
Gut für
- Ein Fotoraster.
- Eine Produktgalerie.
- Bilder in einem Blogartikel.
props
| Prop | Typ | Standard | Beschreibung |
|---|---|---|---|
src | string | Das an Ort und Stelle gezeigte Bild. | |
zoomSrc | string | Ein größeres Bild, das nach dem Laden angezeigt wird; behalte dasselbe Seitenverhältnis. | |
margin | number | 24 | Freiraum um das vergrößerte Bild in Pixeln. |
disabled | boolean | false | Schaltet den Zoom aus. |
onZoomChange | (zoomed) => void | Läuft mit true beim Vergrößern und false beim Schließen. | |
backdropStyle | CSSProperties | Inline-Style für den Hintergrund. | |
transition | Transition | spring | Eine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung. |
Weitere props gehen an das gerenderte Element, also funktionieren className, style und Event-Handler wie gewohnt.
Web und React Native
Das Overlay existiert nur während des Zooms (im Web ein Dialog im Top Layer), daher kann das Bild überall sitzen, sogar in einem Absatz. Weitere props gehen an das img.
Unter React Native übergibst du source und zoomSource; das Overlay ist ein transparentes Modal.