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

MotionZoom

รูปภาพที่ซูมจากตำแหน่งเดิมเป็นเต็มจอ ลากออกไปเพื่อปิด

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

ลองดู

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

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

Photo.jsx
<MotionZoom
  src={photo.thumb}
  zoomSrc={photo.full}
  width={240}
  height={160}
  style={{ objectFit: 'cover', borderRadius: 12 }}
/>;

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

  • การคลิก Enter หรือ Space ซูมรูปจากตำแหน่งที่อยู่จนเต็มจอภายใน margin
  • สำเนาที่ซูมเริ่มต้นเหมือนภาพย่อทุกประการ ทั้งการครอบตัด object-fit และรัศมีมุม
  • zoomSrc ค่อย ๆ ปรากฏเมื่อโหลดเสร็จ
  • การคลิก Escape หรือการลากออกไปจะปิด การเหวี่ยงเร็วก็ปิดได้ ส่วนการลากสั้น ๆ จะเด้งกลับ

ใช้สำหรับ

  • ตารางรูปภาพ
  • แกลเลอรีสินค้า
  • รูปภาพในโพสต์บล็อก

Props

Propชนิดค่าเริ่มต้นคำอธิบาย
srcstringรูปภาพที่แสดงในตำแหน่งเดิม
zoomSrcstringรูปที่ใหญ่กว่าซึ่งแสดงเมื่อโหลดเสร็จ ใช้อัตราส่วนภาพเดียวกัน
marginnumber24ระยะเว้นรอบรูปที่ซูมเป็นพิกเซล
disabledbooleanfalseปิดการซูม
onZoomChange(zoomed) => voidทำงานพร้อม true เมื่อซูม และ false เมื่อปิด
backdropStyleCSSPropertiesสไตล์ inline ของฉากหลัง
transitionTransitionspringเส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ

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

เว็บและ React Native

โอเวอร์เลย์มีอยู่เฉพาะตอนซูม (เป็น dialog ใน top layer บนเว็บ) รูปจึงอยู่ที่ใดก็ได้ แม้แต่ในย่อหน้า props อื่นส่งต่อไปยัง img

บน React Native ให้ส่ง source และ zoomSource โอเวอร์เลย์คือ Modal โปร่งใส

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

ค้นหา

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