Útmutatók · 04

Bemenet és gesztusok

Írja a mutatót, a húzást, a görgetést és más bemenetet értékekbe, és hagyja, hogy más értékek kövessék őket.

input(target, adapter)

Egy bemeneti adapter a böngészőeseményeket értékírásokká alakítja. Az input(ref, adapter) vezérlőként csatolja; ha a useAnimated-ben deklarálja, leválasztáskor vagy függőségváltozáskor eltávolítja.

Adapterek: dragInput, pinchInput, moveInput, scrollInput, wheelInput, viewportInput, mediaInput, longPressInput és swipeInput.

A példa előkészítése…

Húzás határokkal és elengedés utáni mozgással

A dragInput támogatja a mutatóval és nyílbillentyűkkel való húzást, a bounds határokat elastic ellenállással, az elengedés utáni momentum lendületet és egy settle függvényt, amely a vetített pozícióból választja ki a nyugalmi helyet.

Érintőképernyőn csatolt állapotban beállítja a cél touch-action tulajdonságát, hogy a böngésző ne vegye át a gesztust görgetésként. Az Ön által beállított érték elsőbbséget élvez.

A példa előkészítése…

Csippentés, nézetablak és média

Az input opcionális harmadik argumentuma minden reakcióeseményt megkap, így egy adapter a széleinél mozgást is indíthat.

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

A React Native eseményleképezései DOM-eseményeken is működnek. Görgetési eseménynél a nativeEvent.contentOffset, a contentSize és a layoutMeasurement a görgetett elemből olvasódik, így a ScrollView-leképezések változatlanul átvihetők.

Header.jsx
const scrollY = useAnimatedValue(0);

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

Keresés

Gépeljen a dokumentációban való kereséshez.