Rubber-band — stretching rubber effect.
Implementation:
1import { Animated } from "react-native";23function RubberBandView({ children }) {4 const rubberAnim = useRef(new Animated.Value(0)).current;56 useEffect(() => {7 Animated.sequence([8 Animated.timing(rubberAnim, {9 toValue: -0.15,10 duration: 300,11 useNativeDriver: true,12 }),13 Animated.timing(rubberAnim, {14 toValue: 0.1,15 duration: 100,16 useNativeDriver: true,17 }),18 Animated.timing(rubberAnim, {19 toValue: -0.05,20 duration: 100,21 useNativeDriver: true,22 }),23 Animated.timing(rubberAnim, {24 toValue: 0,25 duration: 100,26 useNativeDriver: true,27 }),28 ]).start();29 }, []);3031 return (32 <Animated.View style={{33 transform: [34 { scaleX: rubberAnim.interpolate({35 inputRange: [-0.15, 0, 0.1],36 outputRange: [0.85, 1, 1.1],37 }) },38 { scaleY: rubberAnim.interpolate({39 inputRange: [-0.15, 0, 0.1],40 outputRange: [1.15, 1, 0.9],41 }) },42 ],43 }}>44 {children}45 </Animated.View>46 );47}