Hướng dẫn · 01
Chuyển tiếp
Mọi component nhận một transition: đường cong timing hoặc lò xo. Cách chọn, và chuyện gì xảy ra khi chuyển động bị ngắt.
Hai loại chuyển tiếp
Chuyển tiếp là { duration, easing } hoặc { tempo: 'spring', spring }. Truyền nó vào prop transition của bất kỳ component nào. Component di chuyển nhiều thứ cùng lúc nhận thêm một prop thứ hai, như layoutTransition trên MotionList cho các mục lướt đến vị trí mới.
// Timing: a duration and a curve.
{ duration: 300, easing: 'easeOut' }
{ duration: 600, easing: [0.22, 1, 0.36, 1] }
// Spring: physics that keeps its speed when interrupted.
{ tempo: 'spring', spring: { stiffness: 260, damping: 12 } }
// Spring with duration: calibrated to settle exactly then.
{ tempo: 'spring', spring: { stiffness: 260, damping: 12 }, duration: 500 }Lò xo có thời lượng
Lò xo thường chạy lâu bao nhiêu tùy vật lý của nó. Thêm duration và lò xo được hiệu chỉnh để dừng đúng lúc đó, giữ nguyên tính cách (độ nảy) mà vẫn khớp với timing của bạn. So sánh đường cong timing và lò xo trên cùng ba component bên dưới.
Đang chuẩn bị ví dụ…
Ngắt giữa chừng
Mọi component bắt đầu chuyển động mới từ những gì đang trên màn hình. Lò xo còn giữ vận tốc hiện tại, nên cú nhấp thứ hai đổi chiều chuyển động một cách mượt mà. Đường cong timing bắt đầu lại từ vị trí hiện tại với một đường cong mới.
- Số: giá trị mới tiếp tục từ các glyph trên màn hình.
- Chiều cao và hoán đổi: kích thước tiếp tục từ kích thước trên màn hình.
- Danh sách: mục di chuyển đến vị trí mới vẫn giữ vận tốc.
Chuyển tiếp có sẵn
motionTokens tập hợp vài cảm giác nhất quán: bốn lò xo, bốn đường cong timing và bốn thời lượng. Chúng là đối tượng thường, nên hãy spread một cái để đổi riêng một trường.
import { motionTokens } from '@kkwaenggwari/animated-chorus';
motionTokens.spring.quick; // snappy UI feedback
motionTokens.spring.basic; // the default feel
motionTokens.spring.gentle; // panels and height
motionTokens.spring.bouncy; // playful numbers
motionTokens.easing.expoOut; // { duration: 420, easing: 'expoOut' }
motionTokens.duration.fast; // 140Tên easing
easing nhận linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut, hoặc một mảng Bézier bậc ba như [0.22, 1, 0.36, 1].