כל הרכיבים
MotionSwap
תוכן שמתחלף בדעיכה צולבת בזמן שהגודל עוקב.
אינטרנטReact Nativeתוכן וגודל
נסו את זה
השימוש הקצר ביותר
SaveButton.jsx<button onClick={save}>
<MotionSwap value={status} effect="up">
{status === 'saving' ? 'Saving…' : status === 'saved' ? 'Saved' : 'Save'}
</MotionSwap>
</button>;
מה הוא עושה בשבילכם
- האלמנט משנה גודל מהגודל שלו על המסך לגודל הטבעי של התוכן החדש, כך שכפתורים לעולם לא קופצים.
- התוכן הישן דועך במקומו בזמן שהחדש מופיע; אף אחד מהם לא זורם מחדש במהלך ההחלפה.
- חזרה אחורה באמצע החלפה ממשיכה ממה שעל המסך במקום לערום עותקים.
- ילדים של טקסט פשוט הם ה־
value של עצמם; העבירו value לכל השאר.
מתאים ל־
- שמירה, ואז שומר…, ואז נשמר.
- שלד שהופך לכרטיס פרופיל.
- כפתור ניגון שהופך להשהיה.
Props
| Prop | טיפוס | ברירת מחדל | תיאור |
|---|
value | unknown | | זהות התוכן; ערך חדש מחליף. ילדים של טקסט פשוט הם הזהות של עצמם. |
|---|
children | ReactNode | | התוכן. |
|---|
as | element | 'span' | האלמנט לרינדור. |
|---|
inline | boolean | as === 'span' | true מתאים את הגודל לתוכן (תוויות, אייקונים); false ממלא את רוחב ההורה ומנפיש גובה. |
|---|
align | 'start' | 'center' | 'end' | 'center' | איפה התוכן יושב בזמן שהגודל משתנה. |
|---|
effect | 'fade' | 'up' | 'down' | 'scale' | 'fade' | איך התוכן נכנס ויוצא: up עולה, down יורד, scale גדל. |
|---|
transition | Transition | spring | עקומת timing { duration, easing } או קפיץ { tempo: 'spring', spring }. קפיצים שומרים על התנופה שלהם כשמפריעים להם. |
|---|
onMotionComplete | (value) => void | | רץ כשהתנועה מתייצבת. |
|---|
props אחרים עוברים לאלמנט המרונדר, כך ש־className, style ומטפלי אירועים עובדים כרגיל.