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

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

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

PropKiểuMặc địnhMô tả
openbooleantruefalse 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.
childrenReactNodeNội dung.
aselement'div'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(open) => voidChạ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.

Web và React Native

Trên web, chiều cao được phát bằng Web Animations API và nội dung giữ bố cục bình thường.

Trên React Native, view cắt nội dung và tạo hoạt ảnh chiều cao bằng JS driver, vì chiều cao là bố cục.

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

Tìm kiếm

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