Усі компоненти

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

ПропТипТиповоОпис
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.

Використовується в прикладах

Пошук

Почніть вводити, щоб шукати в документації.