Ръководства · 04

Вход и жестове

Записвайте показалеца, влаченето, превъртането и друг вход в стойности и оставете други стойности да ги следват.

input(target, adapter)

Адаптерът за вход превръща събитията на браузъра в записи на стойности. input(ref, adapter) го свързва като контролер; деклариран в useAnimated, той се премахва при демонтиране или промяна на зависимост.

Адаптери: dragInput, pinchInput, moveInput, scrollInput, wheelInput, viewportInput, mediaInput, longPressInput и swipeInput.

Подготовка на примера…

Влачене с граници и движение след пускане

dragInput поддържа влачене с показалец и стрелки, bounds със съпротивление elastic, momentum след пускане и функция settle, която избира мястото за спиране по прогнозната позиция.

На сензорни екрани задава touch-action на целта, докато е монтиран, за да не приеме браузърът жеста за превъртане. Стойност, която сте задали сами, има предимство.

Подготовка на примера…

Щипване, видима област и медии

Незадължителният трети аргумент на input получава всяко събитие на отговор, така че адаптерът може да стартира движение и по краищата си.

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

Съпоставянията на събития от React Native работят с DOM събития. При събитие на превъртане nativeEvent.contentOffset, contentSize и layoutMeasurement се четат от превъртания елемент, така че съпоставянията на ScrollView се пренасят без промяна.

Header.jsx
const scrollY = useAnimatedValue(0);

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

Търсене

Пишете, за да търсите в документацията.