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

Метод interpolate

Метод interpolate у Value строит новое анимируемое значение для style. Пары inputRange и outputRange задают, как входное число превращается в выходное. Параметр extrapolate ограничивает результат за пределами диапазона.

Синтаксис

const width = progress.interpolate({ inputRange: [0, 1], outputRange: [40, 200], extrapolate: 'clamp', });

Параметры

Параметр Описание
inputRange Массив опорных точек исходного значения по возрастанию.
outputRange Массив результатов для каждой точки inputRange.
extrapolate Правило за границами диапазона, часто 'clamp'.

Пример

Давайте по прогрессу менять цвет фона через числовой канал:

import { useEffect, useRef } from 'react'; import { Animated, View, Text } from 'react-native'; export default function App() { const step = useRef(new Animated.Value(0)).current; useEffect(() => { Animated.timing(step, { toValue: 1, duration: 600, useNativeDriver: false, }).start(); }, [step]); const bg = step.interpolate({ inputRange: [0, 1], outputRange: ['rgb(200,220,240)', 'rgb(40,80,120)'], }); return ( <Animated.View style={{ padding: 16, backgroundColor: bg }}> <Text>abcde</Text> </Animated.View> ); }

На экране фон блока плавно темнеет, пока step растет от нуля до единицы.

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

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