Tất cả component
MotionHeight
Chiều cao bám theo nội dung: thu gọn, mở rộng và thay đổi nội dung.
WebReact NativeNội dung và kích thước
Thử ngay
Cách dùng ngắn nhất
Details.jsx<button onClick={() => setOpen(!open)}>Details</button>
<MotionHeight open={open}>
<Answer />
</MotionHeight>
Những gì nó xử lý giúp bạn
- Tạo hoạt ảnh tới chiều cao thật của nội dung, được đo giúp bạn.
- Bám theo nội dung khi nó tăng hay giảm trong lúc mở.
- Bắt đầu từ chiều cao trên màn hình, kể cả giữa lúc thay đổi.
- Đổi kích thước trang sẽ khớp ngay thay vì tụt lại sau chiều rộng mới.
- Nội dung đóng vẫn được gắn nhưng bị ẩn và vô hiệu, nên state của nó được giữ.
Dùng cho
- Câu trả lời trong FAQ.
- Một nhóm cài đặt mở ra.
- Danh sách cần tạo hoạt ảnh cho tổng chiều cao (bọc
MotionList).
Props
| Prop | Kiểu | Mặc định | Mô tả |
|---|
open | boolean | true | false thu về chiều cao bằng không; nội dung vẫn được gắn nhưng bị ẩn và vô hiệu. |
|---|
children | ReactNode | | Nội dung. |
|---|
as | element | 'div' | Phần tử được render. |
|---|
transition | Transition | spring | Đường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt. |
|---|
onMotionComplete | (open) => void | | Chạy với open khi chiều cao đã dừng. |
|---|
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.
Được dùng trong các ví dụ này