MotionNumber · MotionText
ตัวเลขที่แต่ละหลักหมุนเหมือนวงล้อ รวมถึงหลักที่ปรากฏหรือหายไป
เว็บReact Nativeตัวเลขและข้อความ
ลองดู
กำลังเตรียมตัวอย่าง…
การใช้งานที่สั้นที่สุด
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>สิ่งที่มันจัดการให้คุณ
- การทด:
999 → 1,000หมุนทุกหลักที่เปลี่ยนไปทางเดียวกัน เหมือนมาตรวัดระยะทาง - หลักที่ปรากฏหรือหายไปจะหมุนเข้าหรือออกจากคอลัมน์ของตัวเอง แทนที่จะโผล่ขึ้นมาทันที
- ตัวคั่น เครื่องหมาย และสัญลักษณ์สกุลเงินจะค่อย ๆ ปรากฏและจางไปพร้อมกับหลักที่มันสังกัด
- หลักที่เหลือเลื่อนไปยังตำแหน่งใหม่ขณะหมุน ตัวเลขจึงไม่เคยแตกออก
- ค่าใหม่กลางการเคลื่อนไหวทำต่อจากสิ่งที่อยู่บนหน้าจอพอดี
- การจัดรูปแบบไม่เคยต้องใช้
Intl: ส่งข้อความหรือฟังก์ชันformatหรือเลือกเปิดด้วยintl
ใช้สำหรับ
- ยอดรวมตะกร้าที่เปลี่ยนเมื่อเพิ่มสินค้า
- ตัวนับหรือคะแนนแบบสด
- ตัวเลขบนแดชบอร์ดที่รีเฟรชทุกไม่กี่วินาที
Props
MotionNumber
| Prop | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
value | number | bigint | string | —จำเป็น | ตัวเลข หรือข้อความตัวเลขที่ผู้เรียกจัดรูปแบบแล้ว |
mode | 'replace' | 'roll' | 'replace' | replace เลื่อนแต่ละหลักที่เปลี่ยนหนึ่งขั้น roll ผ่านตัวเลขระหว่างกลาง |
direction | 'auto' | 'digit' | 'up' | 'down' | 'auto' | auto ตามการเปลี่ยนขนาดเพื่อให้การทดหมุนไปทางเดียว digit เทียบแต่ละหลักแยกกัน |
stagger | number | 45 | มิลลิวินาทีระหว่างหลักที่เปลี่ยน จากหลักหน่วยออกไป คลื่นทั้งหมดถูกจำกัดเวลา |
format | (value) => string | Intl.NumberFormatOptions | ฟังก์ชันที่คืนข้อความที่จะแสดง หรือตัวเลือกของ Intl.NumberFormat (เมื่อใช้ intl) | |
intl | boolean | false | ใช้ Intl.NumberFormat ในตัว ปิดไว้โดยค่าเริ่มต้นเพื่อไม่ให้รันไทม์ใดต้องมี Intl |
locale | string | string[] | โลแคลสำหรับ intl | |
prefix | string | ข้อความก่อนตัวเลข | |
suffix | string | ข้อความหลังตัวเลข | |
transition | Transition | spring | เส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ |
onMotionComplete | (value) => void | ทำงานพร้อมค่าเมื่อหลักทั้งหมดหยุดนิ่ง |
MotionText
| Prop | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
children | ReactNode | ข้อความที่จะแสดง | |
as | element | 'span' | องค์ประกอบที่จะเรนเดอร์ |
transition | Transition | spring | เส้นโค้ง timing { duration, easing } หรือสปริง { tempo: 'spring', spring } สปริงรักษาโมเมนตัมไว้เมื่อถูกขัดจังหวะ |
onMotionComplete | (text) => void | ทำงานเมื่อการเคลื่อนไหวหยุดนิ่ง |
props อื่นจะส่งต่อไปยังองค์ประกอบที่เรนเดอร์ className, style และตัวจัดการเหตุการณ์จึงทำงานตามปกติ
เว็บและ React Native
บนเว็บ แต่ละหลักคือกองกลีฟเล็ก ๆ ที่เล่นด้วย Web Animations API และข้อความยังเลือกได้ MotionText ทำให้ข้อความใดก็เคลื่อนไหวได้ ข้อความตัวเลขหมุนทีละหลัก ข้อความอื่นจะสลับ
บน React Native ตัวเลขยังเป็น Text จริงเพื่อเลย์เอาต์ การเลือก และการเข้าถึง รวมถึงการตัดบรรทัดและ numberOfLines ส่วนกลีฟเคลื่อนที่ด้วย native driver