MotionZoom
รูปภาพที่ซูมจากตำแหน่งเดิมเป็นเต็มจอ ลากออกไปเพื่อปิด
เว็บReact Nativeโอเวอร์เลย์
ลองดู
กำลังเตรียมตัวอย่าง…
การใช้งานที่สั้นที่สุด
<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 | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
src | string | รูปภาพที่แสดงในตำแหน่งเดิม | |
zoomSrc | string | รูปที่ใหญ่กว่าซึ่งแสดงเมื่อโหลดเสร็จ ใช้อัตราส่วนภาพเดียวกัน | |
margin | number | 24 | ระยะเว้นรอบรูปที่ซูมเป็นพิกเซล |
disabled | boolean | false | ปิดการซูม |
onZoomChange | (zoomed) => void | ทำงานพร้อม true เมื่อซูม และ false เมื่อปิด | |
backdropStyle | CSSProperties | สไตล์ inline ของฉากหลัง | |
transition | Transition | spring | เส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ |
props อื่นจะส่งต่อไปยังองค์ประกอบที่เรนเดอร์ className, style และตัวจัดการเหตุการณ์จึงทำงานตามปกติ
เว็บและ React Native
โอเวอร์เลย์มีอยู่เฉพาะตอนซูม (เป็น dialog ใน top layer บนเว็บ) รูปจึงอยู่ที่ใดก็ได้ แม้แต่ในย่อหน้า props อื่นส่งต่อไปยัง img
บน React Native ให้ส่ง source และ zoomSource โอเวอร์เลย์คือ Modal โปร่งใส