Всички компоненти

MotionZoom

Изображение, което се мащабира от мястото си до цял екран; отместете го, за да го затворите.

УебReact NativeНаслагвания

Опитайте

Подготовка на примера…

Най-кратка употреба

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

С какво се справя вместо вас

  • Клик, Enter или интервал мащабират изображението от мястото му, докато запълни екрана в рамките на margin.
  • Мащабираното копие започва точно както изглежда миниатюрата, с изрязването object-fit и закръглените ъгли.
  • zoomSrc плавно се появява веднага щом се зареди.
  • Клик, Escape или отместване го затварят; бързо хвърляне също затваря, а кратко влачене се връща с пружина.

Подходящ за

  • Мрежа от снимки.
  • Галерия с продукти.
  • Изображения в публикация в блог.

Props

PropТипПо подразбиранеОписание
srcstringИзображението, показано на място.
zoomSrcstringПо-голямо изображение, показвано след зареждане; запазете същото съотношение на страните.
marginnumber24Разстояние около мащабираното изображение в пиксели.
disabledbooleanfalseИзключва мащабирането.
onZoomChange(zoomed) => voidИзпълнява се с true при мащабиране и false при затваряне.
backdropStyleCSSPropertiesВграден стил за фона.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.

Другите props отиват към рендерирания елемент, така че className, style и обработчиците на събития работят както обикновено.

Уеб и React Native

Наслагването съществува само докато е мащабирано (в уеб — dialog в горния слой), така че изображението може да е навсякъде, дори в абзац. Другите props отиват към img.

В React Native подайте source и zoomSource; наслагването е прозрачен Modal.

Използван в тези примери

Търсене

Пишете, за да търсите в документацията.