Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
151 of 196 menu
◀ ▶

Метод spring

Метод spring класса Animated меняет Value с эффектом упругости. Жесткость задают tension, затухание - friction. Метод возвращает объект анимации для start.

Синтаксис

const anim = Animated.spring(value, { toValue: 0, friction: 7, tension: 40, useNativeDriver: true, });

Параметры

Параметр Описание
value Экземпляр Value.
toValue Целевое число анимации.
friction Сопротивление: большее значение быстрее гасит колебание.
tension Жесткость пружины: выше значение - резче рывок к цели.
useNativeDriver При true расчет уходит в нативный драйвер.

Пример

Давайте отпустим блок и дадим ему вернуться пружиной:

import { useRef } from 'react'; import { Animated, View, Pressable, Text } from 'react-native'; export default function App() { const shift = useRef(new Animated.Value(0)).current; const snapBack = () => { Animated.spring(shift, { toValue: 0, friction: 5, tension: 80, useNativeDriver: true, }).start(); }; return ( <View> <Pressable onPress={() => shift.setValue(120)}> <Text>12345</Text> </Pressable> <Pressable onPress={snapBack}> <Text>abcde</Text> </Pressable> <Animated.View style={{ transform: [{ translateX: shift }] }}> <View style={{ width: 60, height: 60, backgroundColor: '#cc6633' }} /> </Animated.View> </View> ); }

На экране квадрат после второго нажатия подпрыгивает к исходной позиции.

Смотрите также

  • метод timing,
    который меняет значение по времени
  • метод decay,
    который замедляет значение по инерции
  • метод setValue,
    который ставит число без анимации
  • компонент Animated.View,
    который рисует блок с анимируемым стилем
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить