คอมโพเนนต์ทั้งหมด
MotionSwap
เนื้อหาที่ครอสเฟดขณะที่ขนาดเปลี่ยนตาม
เว็บReact Nativeเนื้อหาและขนาด
ลองดู
การใช้งานที่สั้นที่สุด
SaveButton.jsx<button onClick={save}>
<MotionSwap value={status} effect="up">
{status === 'saving' ? 'Saving…' : status === 'saved' ? 'Saved' : 'Save'}
</MotionSwap>
</button>;
สิ่งที่มันจัดการให้คุณ
- องค์ประกอบเปลี่ยนขนาดจากขนาดบนหน้าจอเป็นขนาดตามธรรมชาติของเนื้อหาใหม่ ปุ่มจึงไม่เคยกระโดด
- เนื้อหาเก่าจางไปที่เดิมขณะที่เนื้อหาใหม่ค่อย ๆ ปรากฏ ทั้งคู่ไม่จัดเรียงใหม่ระหว่างการสลับ
- การเปลี่ยนกลับกลางการสลับจะทำต่อจากสิ่งที่อยู่บนหน้าจอ แทนที่จะซ้อนสำเนา
- children ที่เป็นข้อความธรรมดาเป็น
value ของตัวเอง สำหรับอย่างอื่นให้ส่ง value
ใช้สำหรับ
- บันทึก แล้วกำลังบันทึก… แล้วบันทึกแล้ว
- โครงร่างที่กลายเป็นการ์ดโปรไฟล์
- ปุ่มเล่นที่กลายเป็นปุ่มหยุดชั่วคราว
Props
| Prop | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|
value | unknown | | ตัวตนของเนื้อหา ค่าใหม่จะทำให้สลับ children ที่เป็นข้อความธรรมดาเป็นตัวตนของตัวเอง |
|---|
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 และตัวจัดการเหตุการณ์จึงทำงานตามปกติ