Vodniki · 04

Vnos in geste

Zapisujte kazalec, vlečenje, drsenje in drug vnos v vrednosti, druge vrednosti pa naj jim sledijo.

input(target, adapter)

Vnosni adapter dogodke brskalnika spremeni v zapise vrednosti. input(ref, adapter) ga pripne kot krmilnik; če je deklariran v useAnimated, se odstrani ob odklopu ali ko se odvisnost spremeni.

Adapterji: dragInput, pinchInput, moveInput, scrollInput, wheelInput, viewportInput, mediaInput, longPressInput in swipeInput.

Pripravljanje primera …

Vlečenje z mejami in gibanjem po spustu

dragInput podpira vlečenje s kazalcem in puščičnimi tipkami, bounds z uporom elastic, momentum po spustu in funkcijo settle, ki iz predvidenega položaja izbere mesto mirovanja.

Na zaslonih na dotik med priklopom cilju nastavi touch-action, da brskalnik geste ne prevzame za drsenje. Vrednost, ki jo nastavite sami, ima prednost.

Pripravljanje primera …

Ščip, vidno polje in mediji

Neobvezni tretji argument input prejme vsak dogodek odziva, zato lahko adapter tudi na svojih robovih zažene gibanje.

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

Preslikave dogodkov iz React Nativa delujejo na dogodkih DOM. Pri dogodku drsenja se nativeEvent.contentOffset, contentSize in layoutMeasurement preberejo iz drsnega elementa, zato se preslikave ScrollView prenesejo nespremenjene.

Header.jsx
const scrollY = useAnimatedValue(0);

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

Iskanje

Tipkajte za iskanje po dokumentaciji.