كل المكوّنات
MotionPager
صفحات قابلة للسحب من البيانات: التعريف بالتطبيق والدوّارات ولوحات التبويب.
الويبReact Nativeالاختيار والصفحات
جرّبه
أقصر استخدام
Onboarding.jsx<MotionPager
items={slides}
index={page}
onIndexChange={setPage}
gap={16}
renderItem={(slide) => <Slide slide={slide} />}
/>;
ما يتولّاه عنك
- تتبع الصفحات السحب باللمس والفأرة، وتقاوم بعد الطرفين، وتستقر وفق سرعة إفلاتك.
- النقرة السريعة تقلب صفحة دائمًا، ولا تقلب الإيماءة الواحدة أكثر من صفحة.
- التمرير الأفقي بلوحة اللمس يقلب الصفحات أيضًا، ويُتجاهل ذيل زخمه.
- تعمل مفاتيح الأسهم وHome وEnd حين يكون مقلّب الصفحات في التركيز، ويستمر التمرير العمودي في العمل.
- الصفحات غير النشطة خاملة.
استخدمه لـ
- مسار تعريف بالتطبيق.
- دوّار صور.
- لوحات تبويب قابلة للسحب مقرونة بـ
MotionHighlight.
Props
| Prop | النوع | الافتراضي | الوصف |
|---|
items | readonly T[] | —إلزامي | مصفوفة بياناتك. |
|---|
index | number | | الصفحة المعروضة. اتركها ليحتفظ مقلّب الصفحات بصفحته. |
|---|
defaultIndex | number | 0 | الصفحة الأولى حين لا يكون index متحكَّمًا به. |
|---|
onIndexChange | (index, item) => void | | يعمل مع الفهرس والعنصر بمجرد أن تستقر سحبة أو مفتاح أو إيماءة عجلة. |
|---|
getKey | (item) => string | number | item.id | تعيد مفتاحًا فريدًا ثابتًا لعنصر. افتراضيًا item.id، أو العنصر نفسه للنصوص والأرقام. |
|---|
renderItem | (item, { index, active }) => ReactNode | item.label | يرسم صفحة؛ ويتلقى فهرسها وما إذا كانت نشطة. |
|---|
gap | number | 0 | المسافة بين الصفحات بالبكسل. |
|---|
itemClassName | string | | صنف لعنصر كل بند؛ ويضبط itemStyle نمطه المضمّن. |
|---|
transition | Transition | spring | منحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة. |
|---|
تذهب props الأخرى إلى العنصر المعروض، فتعمل className وstyle ومعالجات الأحداث كالمعتاد.