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

MotionSheet

ชีตด้านล่าง ชีตด้านบน หรือลิ้นชักด้านข้าง พร้อมจุดหยุด การสะบัด และการส่งต่อการเลื่อน

เว็บReact Nativeโอเวอร์เลย์

ลองดู

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

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

Filters.jsx
<MotionSheet open={open} onOpenChange={setOpen} detents={[0.45, 0.92]}>
  <FilterList />
</MotionSheet>;

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

  • ตามการลาก มีแรงต้านเมื่อเลยจุดหยุดที่ใหญ่ที่สุด และหยุดตามความเร็วที่คุณปล่อย การสะบัดจะเลื่อนหนึ่งจุดหยุดหรือปิด
  • การลากด้วยการสัมผัสจะส่งต่อให้เนื้อหาที่เลื่อนได้: ลากลงจะเลื่อนเนื้อหากลับไปบนสุดก่อนชีตจะขยับ
  • จุดหยุดเป็นสัดส่วนของหน้าจอ พิกเซล หรือ 'content' สำหรับขนาดตามธรรมชาติของเนื้อหา
  • ชีตแบบโมดัลเก็บโฟกัสไว้ข้างใน ทำให้หน้าไม่ตอบสนอง และปิดด้วย Escape หรือฉากหลัง

ใช้สำหรับ

  • แผงตัวกรอง
  • เมนูแชร์
  • ลิ้นชักนำทางด้วย side="start"

Props

Propชนิดค่าเริ่มต้นคำอธิบาย
openbooleanfalseชีตแสดงอยู่หรือไม่
onOpenChange(open) => voidทำงานพร้อม false เมื่อชีตถูกปิดด้วยการลาก การแตะ หรือ Escape
detents(number | 'content')[]['content']ขนาดขณะพัก: สัดส่วนของหน้าจอ พิกเซล หรือ 'content'
detentnumberindex ของจุดหยุดแบบควบคุม
defaultDetentnumber0index ของจุดหยุดที่ใช้เมื่อเปิดโดยไม่มี detent
onDetentChange(index) => voidทำงานพร้อม index ของจุดหยุดที่ชีตหยุดนิ่ง
side'bottom' | 'top' | 'start' | 'end''bottom'ขอบที่ชีตเข้ามา
modalbooleantrueเพิ่มฉากหลัง เก็บโฟกัสไว้ข้างใน และทำให้หน้าไม่ตอบสนอง
dismissiblebooleantrueการลากเลยจุดหยุดที่เล็กที่สุด ฉากหลัง และ Escape จะปิดมัน
backdropClassNamestringคลาสของฉากหลัง backdropStyle กำหนดสไตล์ inline ของมัน
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ

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

เว็บและ React Native

บนเว็บ ชีตแบบโมดัลคือ dialog แบบเนทีฟ แผงเป็นคอลัมน์ flex ที่คุณปรับสไตล์ด้วย className

บน React Native มันเรนเดอร์ใน Modal โปร่งใส และปุ่มย้อนกลับปิดได้ ScrollView ภายในรักษาท่าทางของตัวเอง ชีตจึงลากได้จากที่จับ ส่วนหัว และพื้นที่คงที่อื่น

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

ค้นหา

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