如何使用 React Native 创建发光动画

Posted

技术标签:

【中文标题】如何使用 React Native 创建发光动画【英文标题】:How to create a glow animation with React Native 【发布时间】:2019-10-25 03:52:38 【问题描述】:

我想为我的按钮和图像创建一个发光的动画。我想知道是否可以使用反应原生动画来实现这种发光效果。我有这种 css 风格,但我认为它不适用于 react native。关于如何为 react-native 或 react.js 中的按钮或图像执行此操作的任何想法?

.glow 
  font-size: 80px;
  color: #fff;
  text-align: center;
  -webkit-animation: glow 1s ease-in-out infinite alternate;
  -moz-animation: glow 1s ease-in-out infinite alternate;
  animation: glow 1s ease-in-out infinite alternate;


@-webkit-keyframes glow 
  from 
    text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #e60073, 0 0 40px #e60073, 0 0 50px #e60073, 0 0 60px #e60073, 0 0 70px #e60073;
  
  to 
    text-shadow: 0 0 20px #fff, 0 0 30px #ff4da6, 0 0 40px #ff4da6, 0 0 50px #ff4da6, 0 0 60px #ff4da6, 0 0 70px #ff4da6, 0 0 80px #ff4da6;
  

【问题讨论】:

如果您找到任何东西,请告诉我:-) 【参考方案1】:

我认为在 react native 中使用关键帧是不可用的,所以我实现了自己的解决方案:

this.state = 
      isBlinking: false
    ;
this.blinkingInterval = false;

componentWillUnmount() 
    clearInterval(this.blinkingInterval);
    this.blinkingInterval = false;
  

 componentDidMount() 
   if (!this.blinkingInterval) 
      this.blinkingInterval = setInterval(() => 
       this.setState(
          isBlinking: !this.state.isBlinking
         );
       , 800);
    
  

在渲染中:

 <Text style=this.state.isBlinking && styles.textGlowing>Hello World</Text>

在css文件中:

textGlowing: 
    textShadowColor: 'rgba(0, 0, 0, 0.75)',
    textShadowOffset: width: -1, height: 1,
    textShadowRadius: 15
  

【讨论】:

以上是关于如何使用 React Native 创建发光动画的主要内容,如果未能解决你的问题,请参考以下文章

在 react-native-reanimated 中继续循环动画

使用带有样式组件的动画(react-native)

如何使用 React-Native 和 Reanimated 2 为 svg 设置动画道具变换

React-Native-Maps:如何动画来协调?

SwiftUI如何模拟视图发光增大的动画效果

SwiftUI如何模拟视图发光增大的动画效果