كل المكوّنات
MotionHeight
ارتفاع يتبع محتواه: الطي والفتح وتغيّرات المحتوى.
الويبReact Nativeالمحتوى والحجم
جرّبه
أقصر استخدام
Details.jsx<button onClick={() => setOpen(!open)}>Details</button>
<MotionHeight open={open}>
<Answer />
</MotionHeight>
ما يتولّاه عنك
- يتحرك إلى الارتفاع الحقيقي للمحتوى، مقيسًا نيابة عنك.
- يتبع المحتوى حين يكبر أو يصغر وهو مفتوح.
- يبدأ من الارتفاع على الشاشة، حتى في منتصف التغيير.
- تغيير حجم الصفحة يُطبَّق فورًا بدل أن يتأخر عن العرض الجديد.
- يبقى المحتوى المغلق مركّبًا لكنه مخفي وخامل، فتُحفظ حالته.
استخدمه لـ
- إجابات في FAQ.
- مجموعة إعدادات تنفتح.
- قائمة يجب أن يتحرك ارتفاعها الكلي (غلّف
MotionList).
Props
| Prop | النوع | الافتراضي | الوصف |
|---|
open | boolean | true | يطوي false إلى ارتفاع صفري؛ ويبقى المحتوى مركّبًا لكنه مخفي وخامل. |
|---|
children | ReactNode | | المحتوى. |
|---|
as | element | 'div' | العنصر المراد عرضه. |
|---|
transition | Transition | spring | منحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة. |
|---|
onMotionComplete | (open) => void | | يعمل مع open بعد استقرار الارتفاع. |
|---|
تذهب props الأخرى إلى العنصر المعروض، فتعمل className وstyle ومعالجات الأحداث كالمعتاد.