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