كل المكوّنات

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منحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.

تذهب props الأخرى إلى العنصر المعروض، فتعمل className وstyle ومعالجات الأحداث كالمعتاد.

الويب وReact Native

لا توجد الطبقة العلوية إلا أثناء التكبير (dialog في الطبقة العليا على الويب)، فيمكن أن تكون الصورة في أي مكان، حتى داخل فقرة. وتذهب props الأخرى إلى img.

في React Native مرّر source وzoomSource؛ والطبقة العلوية Modal شفاف.

مستخدم في هذه الأمثلة

بحث

اكتب للبحث في التوثيق.