当前位置:  开发笔记 > 编程语言 > 正文

属性更改时反应动画元素?

如何解决《属性更改时反应动画元素?》经验,为你挑选了2个好方法。

当属性发生变化时如何淡入元素?

我希望statusMessage()函数返回的元素在每次this.props.statusMessage更改时都淡入淡出.

目前尚未应用任何动画.它似乎没有添加任何类名.

class SelectPlayer extends React.Component {

  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    selectedId = this.props.selectedId;
    selectedPlayerName = this.props.selectedPlayerName;
    Store.dispatch(Actions.updateScore(selectedId, selectedPlayerName));
  }

  statusMessage() {
    return (
      
          
{this.props.statusMessage.text}
) } render() { if (this.props.selectedPlayerName) { return (
{this.props.selectedPlayerName}
{ this.statusMessage() }
); } else { return (
Click a player to select
); } } };

CSS

.message {
  line-height: 2.25rem;
  text-align: center;
}

.message-appear {
  opacity: 0.01;
}

.message-appear.message-appear-active{
  opacity: 1;
}

arve0.. 10

这可能会更容易做出反应 - 动画变化(免责声明,我是作者).

在渲染中你会做这样的事情:

render() {
  if (this.props.selectedPlayerName) {
    return (
      
{this.props.selectedPlayerName}
{this.props.statusMessage.text}
); } else { return (
Click a player to select
); } }

然后在CSS中使用动画:

.message-clicked {
  animation: clicked-keyframes 1s;
}

@keyframes clicked-keyframes {
  from {opacity: 0.01}
  to {opacity: 1}
}

很难想象你想要的结果如何.但是对于它的声音,你有一个可以点击的玩家列表,然后是所选玩家的视图?在这种情况下,您应该使用包含所选播放器的数组,并使用ReactCSSTransitionGroup渲染进入/离开阵列的玩家.



1> arve0..:

这可能会更容易做出反应 - 动画变化(免责声明,我是作者).

在渲染中你会做这样的事情:

render() {
  if (this.props.selectedPlayerName) {
    return (
      
{this.props.selectedPlayerName}
{this.props.statusMessage.text}
); } else { return (
Click a player to select
); } }

然后在CSS中使用动画:

.message-clicked {
  animation: clicked-keyframes 1s;
}

@keyframes clicked-keyframes {
  from {opacity: 0.01}
  to {opacity: 1}
}

很难想象你想要的结果如何.但是对于它的声音,你有一个可以点击的玩家列表,然后是所选玩家的视图?在这种情况下,您应该使用包含所选播放器的数组,并使用ReactCSSTransitionGroup渲染进入/离开阵列的玩家.



2> Sim Dim..:

官方文档声明您需要为ReactCSSTransitionGroup中的每个元素提供密钥

React使用此进行DOM操作.所以它应该是独一无二的.同样根据我的经验,您应该以相同的方式配置transitionAppear和transitionEnter,以便更改的初始动画和动画看起来相同.

因此,您需要为ReactCSSTransitionGroup提供一些唯一键(或至少在每个更改的子元素的当前状态(或道具)和下一个状态(或道具)之间不同)


    

Hello, {name}

您可以查看JSFIDDLE以了解它是如何工作的.

注意我已经使用{this.state.name}作为密钥,因此在我的示例中它可以正常工作.但在现实世界的应用程序中,我认为你应该使用其他东西作为关键

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有