Ghiduri · 04

Intrare și gesturi

Scrieți cursorul, tragerea, derularea și alte intrări în valori și lăsați alte valori să le urmeze.

input(target, adapter)

Un adaptor de intrare transformă evenimentele browserului în scrieri de valori. input(ref, adapter) îl atașează ca controler; declarat în useAnimated, este eliminat la demontare sau când se schimbă o dependență.

Adaptoare: dragInput, pinchInput, moveInput, scrollInput, wheelInput, viewportInput, mediaInput, longPressInput și swipeInput.

Se pregătește exemplul…

Tragere cu limite și mișcare la eliberare

dragInput suportă tragerea cu cursorul și cu tastele săgeți, bounds cu rezistență elastic, momentum după eliberare și o funcție settle care alege locul de oprire din poziția proiectată.

Pe ecranele tactile setează touch-action pe țintă cât e montat, ca browserul să nu preia gestul drept derulare. O valoare setată de dumneavoastră are prioritate.

Se pregătește exemplul…

Ciupire, viewport și media

Al treilea argument opțional al lui input primește fiecare eveniment de răspuns, așa că un adaptor poate porni mișcare și la marginile sale.

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

Mapările de evenimente din React Native funcționează pe evenimente DOM. La un eveniment de derulare, nativeEvent.contentOffset, contentSize și layoutMeasurement se citesc din elementul derulat, așa că mapările ScrollView se preiau neschimbate.

Header.jsx
const scrollY = useAnimatedValue(0);

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

Căutare

Tastați pentru a căuta în documentație.