ReactNative心跳动画(也可以做元素和文字缩放等)

import React, { useRef, useEffect } from 'react';
import { View, Text, StyleSheet, Animated } from 'react-native';

export const test = () => {
  const scaleValue = useRef(new Animated.Value(1)).current;

  useEffect(() => {
    // 定义心跳效果:快速放大,缓慢缩小
    const heartbeat = Animated.loop(
      Animated.sequence([
        Animated.timing(scaleValue, {
          toValue: 1.2, // 放大到1.2倍
          duration: 300, // 放大时间300ms
          useNativeDriver: true,
        }),
        Animated.timing(scaleValue, {
          toValue: 1, // 缩小回到原始大小
          duration: 300, // 缓慢缩小回去
          useNativeDriver: true,
        }),
      ])
    );

    // 启动心跳动画
    heartbeat.start();

    // 清除动画
    return () => heartbeat.stop();
  }, [scaleValue]);

  return (
    <View style={styles.container}>
      <Animated.View style={[styles.box, { transform: [{ scale: scaleValue }] }]}>
        <Text style={styles.text}>❤️</Text>
      </Animated.View>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
  box: {
    width: 150,
    height: 150,
    justifyContent: 'center',
    alignItems: 'center',
  },
  text: {
    fontSize: 50,
  },
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萧寂173

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值