Tất cả component

MotionNumber · MotionText

Con số có các chữ số cuộn như bánh xe, kể cả chữ số xuất hiện hay biến mất.

WebReact NativeSố và văn bản

Thử ngay

Đang chuẩn bị ví dụ…

Cách dùng ngắn nhất

Total.jsx
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
  format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>

Những gì nó xử lý giúp bạn

  • Nhớ sang hàng: 999 → 1,000 cuộn mọi chữ số thay đổi theo cùng một hướng, như đồng hồ công-tơ-mét.
  • Chữ số xuất hiện hay biến mất sẽ cuộn vào hoặc ra khỏi cột của chính nó thay vì bật ra đột ngột.
  • Dấu phân cách, dấu và ký hiệu tiền tệ hiện ra rồi mờ đi cùng chữ số mà chúng thuộc về.
  • Các chữ số còn lại trượt sang vị trí mới trong lúc cuộn, nên con số không bao giờ bị tách rời.
  • Giá trị mới giữa chừng tiếp tục đúng từ những gì đang trên màn hình.
  • Định dạng không bao giờ bắt buộc Intl: truyền văn bản hoặc hàm format, hoặc chủ động bật bằng intl.

Dùng cho

  • Tổng giỏ hàng thay đổi khi thêm sản phẩm.
  • Bộ đếm hoặc điểm số trực tiếp.
  • Chỉ số bảng điều khiển làm mới sau vài giây.

Props

MotionNumber

PropKiểuMặc địnhMô tả
valuenumber | bigint | string—bắt buộcCon số, hoặc văn bản số đã được bên gọi định dạng.
mode'replace' | 'roll''replace'replace dịch mỗi chữ số thay đổi một bước; roll đi qua các chữ số ở giữa.
direction'auto' | 'digit' | 'up' | 'down''auto'auto theo sự thay đổi độ lớn để phần nhớ cuộn một hướng; digit so sánh từng chữ số riêng.
staggernumber45Mili giây giữa các chữ số thay đổi, từ hàng đơn vị ra ngoài. Toàn bộ gợn sóng có giới hạn.
format(value) => string | Intl.NumberFormatOptionsHàm trả về văn bản để hiển thị, hoặc tùy chọn Intl.NumberFormat (với intl).
intlbooleanfalseDùng Intl.NumberFormat có sẵn. Mặc định tắt để không runtime nào bắt buộc có Intl.
localestring | string[]Locale cho intl.
prefixstringVăn bản trước con số.
suffixstringVăn bản sau con số.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
onMotionComplete(value) => voidChạy với giá trị khi các chữ số đã dừng.

MotionText

PropKiểuMặc địnhMô tả
childrenReactNodeVăn bản để hiển thị.
aselement'span'Phần tử được render.
transitionTransitionspringĐường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt.
onMotionComplete(text) => voidChạy khi chuyển động dừng hẳn.

Các props khác được chuyển tới phần tử được render, nên className, style và trình xử lý sự kiện hoạt động như bình thường.

Web và React Native

Trên web, mỗi chữ số là một chồng glyph nhỏ do Web Animations API phát, và văn bản vẫn chọn được. MotionText tạo hoạt ảnh cho mọi văn bản: văn bản số cuộn theo từng chữ số, văn bản khác thì hoán đổi.

Trên React Native, con số vẫn là Text thật cho bố cục, việc chọn và trợ năng, kể cả xuống dòng và numberOfLines; các glyph chuyển động bằng native driver.

Được dùng trong các ví dụ này

Tìm kiếm

Gõ để tìm trong tài liệu.