animation - React ReactCSSTransitionGroup 将新项目添加并动画化到列表顶部?

标签 animation reactjs reactcsstransitiongroup

我一直在寻找一个示例,该示例使用 React 将项目添加到列表并让它为新添加的项目设置动画,但不是在列表的末尾,而是在列表的开头。我找到了这个例子,但是我在本地和网上做过的所有乱七八糟的事情,当添加到数组的第一个位置时,我似乎无法让该项目动画化。这是一个简单的 react todo 添加项目。如何让项目添加到第一个位置,并在第一个位置做动画?

JS fiddle :http://jsfiddle.net/kb3gN/13152/

var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;

var TodoList = React.createClass({
  getInitialState: function() {
    return {items: ['hello', 'world', 'click', 'me']};
  },
  handleAdd: function() {
    var newItems =
      this.state.items.concat([prompt('Enter some text')]);
    this.setState({items: newItems});
  },
  handleRemove: function(i) {
    var newItems = this.state.items;
    newItems.splice(i, 1)
    this.setState({items: newItems});
  },
  render: function() {
    var items = this.state.items.map(function(item, i) {
      return (
        <TodoItem item={item} key={item} onClick={this.handleRemove.bind(this,     i)}/>
      );
    }.bind(this));
    return (
      <div>
        <div><button onClick={this.handleAdd}>Add new</button></div>
        <ReactCSSTransitionGroup transitionName="example">
          {items}
        </ReactCSSTransitionGroup>
      </div>
    );
  }
});

React.render(<TodoList/>, document.getElementById('list'));

最佳答案

您的问题是您添加到待办事项列表中。如果添加到前面,生成的动画就是您要找的。

更改 handleAdd到:

handleAdd: function() {
  var newItems = this.state.items;
  newItems.unshift([prompt('Enter some text')]);
  this.setState({items: newItems});
},

重点是使用unshift而不是 push .浏览 mdn docs了解差异

关于animation - React ReactCSSTransitionGroup 将新项目添加并动画化到列表顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34168441/

相关文章:

swift - 带 cornerRadius 的矩形中的线动画

CSS3 动画在 IE11 和 Microsoft Edge 中不起作用

html - 是否可以在 CSS 文本动画上设置反弹高度?

javascript - 缩短 jQuery Animate 函数并恢复为按键时启动

javascript - ReactCSSTransitionGroup 动画不流畅

javascript - react : How could I add a fade out animation on delete on dynamically generated table entries?

javascript - react : Rendering a list in reverse order

javascript - 导出默认类Page 或导出默认App

html - Material UI React 应用程序中没有滚动条的全高和宽度

javascript - 无法使用样式化组件获取媒体模板