Semua komponen

MotionZoom

Gambar yang membesar dari tempatnya ke layar penuh; seret menjauh untuk menutup.

WebReact NativeOverlay

Coba

Menyiapkan contoh…

Penggunaan terpendek

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

Yang ditanganinya untuk Anda

  • Klik, Enter, atau Space membesarkan gambar dari tempatnya hingga memenuhi layar di dalam margin.
  • Salinan yang diperbesar dimulai persis seperti tampilan thumbnail, dengan potongan object-fit dan radius sudutnya.
  • zoomSrc muncul perlahan setelah dimuat.
  • Klik, Escape, atau menyeret menjauh menutupnya; lemparan cepat juga menutup, dan seretan pendek memantul kembali.

Gunakan untuk

  • Grid foto.
  • Galeri produk.
  • Gambar di dalam artikel blog.

Props

PropTipeBawaanDeskripsi
srcstringGambar yang ditampilkan di tempatnya.
zoomSrcstringGambar lebih besar yang ditampilkan setelah dimuat; pertahankan rasio aspek yang sama.
marginnumber24Ruang di sekitar gambar yang diperbesar dalam piksel.
disabledbooleanfalseMematikan zoom.
onZoomChange(zoomed) => voidBerjalan dengan true saat diperbesar dan false saat ditutup.
backdropStyleCSSPropertiesGaya inline untuk backdrop.
transitionTransitionspringKurva timing { duration, easing } atau pegas { tempo: 'spring', spring }. Pegas mempertahankan momentumnya saat diinterupsi.

Semua props lain diteruskan ke elemen yang dirender, jadi className, style, dan event handler bekerja seperti biasa.

Web dan React Native

Overlay hanya ada selama diperbesar (dialog top layer di web), jadi gambar bisa berada di mana saja, bahkan di dalam paragraf. Semua props lain diteruskan ke img.

Di React Native, berikan source dan zoomSource; overlay-nya Modal transparan.

Dipakai di contoh-contoh ini

Cari

Ketik untuk mencari dokumentasi.