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
<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. zoomSrcapare 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
| Prop | Tip | Implicit | Descriere |
|---|---|---|---|
src | string | Imaginea afișată pe loc. | |
zoomSrc | string | O imagine mai mare, afișată după ce s-a încărcat; păstrați același raport de aspect. | |
margin | number | 24 | Spațiul lăsat în jurul imaginii mărite, în pixeli. |
disabled | boolean | false | Dezactivează zoomul. |
onZoomChange | (zoomed) => void | Rulează cu true la mărire și cu false la închidere. | |
backdropStyle | CSSProperties | Stil inline pentru fundal. | |
transition | Transition | spring | O 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.