MotionZoom
Изображение, което се мащабира от мястото си до цял екран; отместете го, за да го затворите.
УебReact NativeНаслагвания
Опитайте
Подготовка на примера…
Най-кратка употреба
<MotionZoom
src={photo.thumb}
zoomSrc={photo.full}
width={240}
height={160}
style={{ objectFit: 'cover', borderRadius: 12 }}
/>;С какво се справя вместо вас
- Клик, Enter или интервал мащабират изображението от мястото му, докато запълни екрана в рамките на
margin. - Мащабираното копие започва точно както изглежда миниатюрата, с изрязването
object-fitи закръглените ъгли. zoomSrcплавно се появява веднага щом се зареди.- Клик, Escape или отместване го затварят; бързо хвърляне също затваря, а кратко влачене се връща с пружина.
Подходящ за
- Мрежа от снимки.
- Галерия с продукти.
- Изображения в публикация в блог.
Props
| Prop | Тип | По подразбиране | Описание |
|---|---|---|---|
src | string | Изображението, показано на място. | |
zoomSrc | string | По-голямо изображение, показвано след зареждане; запазете същото съотношение на страните. | |
margin | number | 24 | Разстояние около мащабираното изображение в пиксели. |
disabled | boolean | false | Изключва мащабирането. |
onZoomChange | (zoomed) => void | Изпълнява се с true при мащабиране и false при затваряне. | |
backdropStyle | CSSProperties | Вграден стил за фона. | |
transition | Transition | spring | Крива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване. |
Другите props отиват към рендерирания елемент, така че className, style и обработчиците на събития работят както обикновено.
Уеб и React Native
Наслагването съществува само докато е мащабирано (в уеб — dialog в горния слой), така че изображението може да е навсякъде, дори в абзац. Другите props отиват към img.
В React Native подайте source и zoomSource; наслагването е прозрачен Modal.