代码之家  ›  专栏  ›  技术社区  ›  Vicens Fayos

动画C传输反应

  •  0
  • Vicens Fayos  · 技术社区  · 6 年前

    使用csstrationcomponent和React我想应用淡入淡出动画

    在这里你可以找到一个我想要实现的小例子: https://codesandbox.io/s/j75712qjvy

    在第一次加载时,文本将淡入,但在单击下面的某些按钮时不会再次淡入。

    每次单击一个按钮,状态都会更新,组件也会重新呈现。 所以我的期望是fadeIn动画应该重新开始。

    我忽略了什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ted    6 年前

    你不需要CST来达到这个效果。只需使用CSS和 key 元素的属性。

    See this working demo

    代码的关键部分是您的元素:

    <h2 className="fadeIn" key={this.state.value}>
      {this.state.value}
    </h2>
    

    我加上了 钥匙 className 道具。这将告诉react在密钥更改时替换它。

    接下来是关联的CSS:

    .fadeIn {
      animation: 1s fadeIn;
    }
    
    @keyframes fadeIn {
      0% {
        opacity: 0;
      }
      100% {
        opacity: 1;
      }
    }
    

    这将在每次重新渲染元素时应用动画中的淡入。

    注: 这个 react-transition-group 只需要实现退出转换效应。没有它,入口转换效果很容易处理。