كل المكوّنات

MotionHeight

ارتفاع يتبع محتواه: الطي والفتح وتغيّرات المحتوى.

الويبReact Nativeالمحتوى والحجم

جرّبه

جارٍ تجهيز المثال…

أقصر استخدام

Details.jsx
<button onClick={() => setOpen(!open)}>Details</button>
<MotionHeight open={open}>
  <Answer />
</MotionHeight>

ما يتولّاه عنك

  • يتحرك إلى الارتفاع الحقيقي للمحتوى، مقيسًا نيابة عنك.
  • يتبع المحتوى حين يكبر أو يصغر وهو مفتوح.
  • يبدأ من الارتفاع على الشاشة، حتى في منتصف التغيير.
  • تغيير حجم الصفحة يُطبَّق فورًا بدل أن يتأخر عن العرض الجديد.
  • يبقى المحتوى المغلق مركّبًا لكنه مخفي وخامل، فتُحفظ حالته.

استخدمه لـ

  • إجابات في FAQ.
  • مجموعة إعدادات تنفتح.
  • قائمة يجب أن يتحرك ارتفاعها الكلي (غلّف MotionList).

Props

Propالنوعالافتراضيالوصف
openbooleantrueيطوي false إلى ارتفاع صفري؛ ويبقى المحتوى مركّبًا لكنه مخفي وخامل.
childrenReactNodeالمحتوى.
aselement'div'العنصر المراد عرضه.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
onMotionComplete(open) => voidيعمل مع open بعد استقرار الارتفاع.

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

الويب وReact Native

على الويب يُشغَّل الارتفاع عبر Web Animations API ويحافظ المحتوى على تخطيطه العادي.

في React Native يقصّ العرض محتواه ويحرّك الارتفاع على مشغّل JS، لأن الارتفاع تخطيط.

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

بحث

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