คอมโพเนนต์ทั้งหมด
MotionHeight
ความสูงที่ตามเนื้อหา: ยุบ ขยาย และเนื้อหาที่เปลี่ยน
เว็บReact Nativeเนื้อหาและขนาด
ลองดู
การใช้งานที่สั้นที่สุด
Details.jsx<button onClick={() => setOpen(!open)}>Details</button>
<MotionHeight open={open}>
<Answer />
</MotionHeight>
สิ่งที่มันจัดการให้คุณ
- เคลื่อนไหวไปยังความสูงจริงของเนื้อหา ซึ่งวัดให้คุณ
- ตามเนื้อหาเมื่อมันโตขึ้นหรือหดลงขณะเปิดอยู่
- เริ่มจากความสูงบนหน้าจอ แม้อยู่กลางการเปลี่ยนแปลง
- การปรับขนาดหน้าจะเข้าที่ทันทีแทนที่จะตามหลังความกว้างใหม่
- เนื้อหาที่ปิดอยู่ยังถูก mount แต่ถูกซ่อนและไม่ตอบสนอง state ของมันจึงถูกรักษาไว้
ใช้สำหรับ
- คำตอบใน FAQ
- กลุ่มการตั้งค่าที่เปิดออก
- รายการที่ต้องการให้ความสูงรวมเคลื่อนไหว (ห่อ
MotionList)
Props
| Prop | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|
open | boolean | true | false ยุบเป็นความสูงศูนย์ เนื้อหายังถูก mount แต่ถูกซ่อนและไม่ตอบสนอง |
|---|
children | ReactNode | | เนื้อหา |
|---|
as | element | 'div' | องค์ประกอบที่จะเรนเดอร์ |
|---|
transition | Transition | spring | เส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ |
|---|
onMotionComplete | (open) => void | | ทำงานพร้อม open เมื่อความสูงหยุดนิ่ง |
|---|
props อื่นจะส่งต่อไปยังองค์ประกอบที่เรนเดอร์ className, style และตัวจัดการเหตุการณ์จึงทำงานตามปกติ