Hướng dẫn · 04

Đầu vào và cử chỉ

Ghi con trỏ, kéo, cuộn và các đầu vào khác vào giá trị, rồi để các giá trị khác bám theo.

input(target, adapter)

Adapter đầu vào biến sự kiện trình duyệt thành các lần ghi giá trị. input(ref, adapter) gắn nó như một bộ điều khiển; khi khai báo trong useAnimated, nó được gỡ khi unmount hoặc khi phụ thuộc thay đổi.

Các adapter: dragInput, pinchInput, moveInput, scrollInput, wheelInput, viewportInput, mediaInput, longPressInput và swipeInput.

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

Kéo có giới hạn và chuyển động sau khi thả

dragInput hỗ trợ kéo bằng con trỏ và phím mũi tên, bounds với lực cản elastic, momentum sau khi thả và một hàm settle chọn nơi dừng từ vị trí dự kiến.

Trên màn hình cảm ứng, nó đặt touch-action của đích trong khi được gắn để trình duyệt không coi cử chỉ là cuộn. Giá trị bạn tự đặt sẽ được ưu tiên.

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

Chụm, khung nhìn và media

Đối số thứ ba tùy chọn của input nhận mọi sự kiện phản hồi, nên adapter cũng có thể khởi động chuyển động ở các mép của nó.

inputs.jsx
const card = useRef(null);

const pinch = useAnimated(
  { scale: 1, rotation: 0 },
  (value) => {
    input(card, pinchInput({ scale: value.scale, rotation: value.rotation, minScale: 0.5 }));
  },
  [],
);

const reveal = useAnimated(
  0,
  (value) => {
    input(card, viewportInput({ once: true }), (event) => {
      if (event.phase === 'in') spring(value, { toValue: 1 }).start();
    });
  },
  [],
);

Animated.event

Ánh xạ sự kiện của React Native hoạt động trên sự kiện DOM. Với sự kiện cuộn, nativeEvent.contentOffset, contentSize và layoutMeasurement được đọc từ phần tử đang cuộn, nên ánh xạ ScrollView dùng lại nguyên vẹn.

Header.jsx
const scrollY = useAnimatedValue(0);

<div onScroll={Animated.event([{ nativeEvent: { contentOffset: { y: scrollY } } }])} />;

Tìm kiếm

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