Advertisement
Guest User

Untitled

a guest
Jun 1st, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from 'react'
  2. import ReactDOM from 'react-dom'
  3. import { Transition, animated } from 'react-spring'
  4.  
  5. const defaultStyles = {
  6.   overflow: 'hidden',
  7.   width: '200px',
  8.   backgroundColor: 'red',
  9.   color: 'white',
  10.   display: 'flex',
  11.   justifyContent: 'center',
  12.   fontSize: '4em',
  13.   position: 'absolute',
  14.   margin: 'auto',
  15.   top: 0,
  16.   left: 0,
  17.   right: 0,
  18.   bottom: 0,
  19.   height: '100px',
  20. };
  21.  
  22. class App extends React.PureComponent {
  23.   state = { items: [] }
  24.  
  25.   componentDidMount() {
  26.     // new item
  27.     setTimeout(() => this.setState({ items: ['item1'] }), 2000)
  28.     // new item in between
  29.     setTimeout(() => this.setState({ items: ['item2'] }), 3000)
  30.     // deleted items
  31.     setTimeout(() => this.setState({ items: ['item3'] }), 4000)
  32.     // scrambled order
  33.     setTimeout(() => this.setState({ items: ['item4'] }), 5000)
  34.   }
  35.  
  36.   render() {
  37.     // display: 'flex', flexDirection: 'column', alignItems: 'center'
  38.     return (
  39.       <ul style={{ backgroundColor: 'white', position: 'relative', height: '100px', marginTop: '100px'}}>
  40.         <Transition
  41.           keys={this.state.items}
  42.           from={{ opacity: 0, y: -200 }}
  43.           enter={{ opacity: 1, y: 0 }}
  44.           leave={{ opacity: 0, y: 200 }}
  45.         >
  46.           {this.state.items.map(item => ({ y, opacity }) => <li style={{ ...defaultStyles, opacity, transform: `translate3d(0, ${y}px, 0)` }}>{item}</li>)}
  47.         </Transition>
  48.       </ul>
  49.     )
  50.   }
  51. }
  52.  
  53. ReactDOM.render(<App />, document.getElementById('root'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement