MotionZoom
Ảnh phóng to từ vị trí của nó ra toàn màn hình; kéo ra xa để đóng.
WebReact NativeLớp phủ
Thử ngay
Đang chuẩn bị ví dụ…
Cách dùng ngắn nhất
<MotionZoom
src={photo.thumb}
zoomSrc={photo.full}
width={240}
height={160}
style={{ objectFit: 'cover', borderRadius: 12 }}
/>;Những gì nó xử lý giúp bạn
- Nhấp, Enter hoặc Space phóng ảnh từ chỗ của nó cho đến khi lấp đầy màn hình bên trong
margin. - Bản phóng to bắt đầu giống hệt ảnh thu nhỏ, với cách cắt
object-fitvà bo góc của nó. zoomSrchiện dần khi đã tải xong.- Nhấp, Escape hoặc kéo ra xa sẽ đóng nó; hất nhanh cũng đóng, còn kéo ngắn sẽ bật trở lại.
Dùng cho
- Lưới ảnh.
- Thư viện sản phẩm.
- Ảnh trong bài blog.
Props
| Prop | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
src | string | Ảnh hiển thị tại chỗ. | |
zoomSrc | string | Ảnh lớn hơn hiển thị khi đã tải xong; hãy giữ cùng tỉ lệ khung hình. | |
margin | number | 24 | Khoảng trống quanh ảnh phóng to tính bằng pixel. |
disabled | boolean | false | Tắt phóng to. |
onZoomChange | (zoomed) => void | Chạy với true khi phóng to và false khi đóng. | |
backdropStyle | CSSProperties | Style nội tuyến cho lớp nền. | |
transition | Transition | spring | Đường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt. |
Các props khác được chuyển tới phần tử được render, nên className, style và trình xử lý sự kiện hoạt động như bình thường.
Web và React Native
Lớp phủ chỉ tồn tại khi đang phóng to (một dialog ở top layer trên web), nên ảnh có thể nằm ở bất cứ đâu, kể cả trong một đoạn văn. Các props khác chuyển tới img.
Trên React Native, truyền source và zoomSource; lớp phủ là một Modal trong suốt.