คอมโพเนนต์ทั้งหมด

MotionHeight

ความสูงที่ตามเนื้อหา: ยุบ ขยาย และเนื้อหาที่เปลี่ยน

เว็บReact Nativeเนื้อหาและขนาด

ลองดู

กำลังเตรียมตัวอย่าง…

การใช้งานที่สั้นที่สุด

Details.jsx
<button onClick={() => setOpen(!open)}>Details</button>
<MotionHeight open={open}>
  <Answer />
</MotionHeight>

สิ่งที่มันจัดการให้คุณ

  • เคลื่อนไหวไปยังความสูงจริงของเนื้อหา ซึ่งวัดให้คุณ
  • ตามเนื้อหาเมื่อมันโตขึ้นหรือหดลงขณะเปิดอยู่
  • เริ่มจากความสูงบนหน้าจอ แม้อยู่กลางการเปลี่ยนแปลง
  • การปรับขนาดหน้าจะเข้าที่ทันทีแทนที่จะตามหลังความกว้างใหม่
  • เนื้อหาที่ปิดอยู่ยังถูก mount แต่ถูกซ่อนและไม่ตอบสนอง state ของมันจึงถูกรักษาไว้

ใช้สำหรับ

  • คำตอบใน FAQ
  • กลุ่มการตั้งค่าที่เปิดออก
  • รายการที่ต้องการให้ความสูงรวมเคลื่อนไหว (ห่อ MotionList)

Props

Propชนิดค่าเริ่มต้นคำอธิบาย
openbooleantruefalse ยุบเป็นความสูงศูนย์ เนื้อหายังถูก mount แต่ถูกซ่อนและไม่ตอบสนอง
childrenReactNodeเนื้อหา
aselement'div'องค์ประกอบที่จะเรนเดอร์
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ
onMotionComplete(open) => voidทำงานพร้อม open เมื่อความสูงหยุดนิ่ง

props อื่นจะส่งต่อไปยังองค์ประกอบที่เรนเดอร์ className, style และตัวจัดการเหตุการณ์จึงทำงานตามปกติ

เว็บและ React Native

บนเว็บ ความสูงเล่นด้วย Web Animations API และเนื้อหายังคงเลย์เอาต์ปกติ

บน React Native วิวจะตัดเนื้อหาและเคลื่อนไหวความสูงด้วย JS driver เพราะความสูงเป็นเลย์เอาต์

ใช้ในตัวอย่างเหล่านี้

ค้นหา

พิมพ์เพื่อค้นหาเอกสาร