Skip to content
Permalink
92c4992d61
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time
118 lines (115 sloc) 3.56 KB
import React , { Component } from 'react'
import NodeGroup from 'react-move/NodeGroup'
import Animate from 'react-move/Animate'
import { easeElastic } from 'd3-ease'
import animationTimings from './common/animationTimings'
class TransitionGrid extends Component {
render ( ) {
const { visible , items , removeItem } = this . props
return (
< Animate
show = { visible }
start = { {
// values have to be in an array for some reason or else they won't tween (?)
translateX : [ - 100 ] ,
opacity : [ 1 ]
} }
enter = { [
{
opacity : [ 1 ] ,
timing : { duration : animationTimings . gridEnter }
} ,
{
translateX : [ ] ,
timing : { duration : animationTimings . gridEnter , ease : easeElastic }
}
] }
leave = { [
{
opacity : [ ]
} ,
{
translateX : [ 1000 ] ,
timing : { duration : animationTimings . gridLeave , ease : easeElastic }
}
] }
>
{ ( { opacity , translateX } ) => {
return (
< div
className = "animated-grid"
style = { {
opacity : opacity ,
transform : `translateX( ${ translateX } px)`
} }
>
{
< NodeGroup
data = { items }
keyAccessor = { item => item }
start = { ( item , i ) => {
return {
opacity : [ ] ,
translateY : [ - 50 ] ,
timing : { delay : i * 100 }
}
} }
enter = { ( item , i ) => {
return [
{
opacity : [ 1 ] ,
timing : {
duration : animationTimings . cardEnter ,
delay : i * 100
}
} ,
{
translateY : [ ] ,
timing : {
duration : animationTimings . cardEnter ,
ease : easeElastic ,
delay : i * 100
}
}
]
} }
leave = { ( item , i ) => {
return {
opacity : ,
translateY : - 50 ,
timing : { delay : ( items . length - i ) * 100 }
}
} }
>
{ nodes => {
return (
< ul className = "grid" >
{ nodes . map ( ( { key , data , state } ) => {
return (
< li
key = { key }
className = "card"
style = { {
opacity : state . opacity ,
transform : `translateY( ${ state . translateY } px)`
} }
onClick = { ( ) => removeItem ( data ) }
>
< div className = "close-card" > < / div >
< div > { data } < / div >
< / li >
)
} ) }
< / ul >
)
} }
< / NodeGroup >
}
< / div >
)
} }
< / Animate >
)
}
}
export default TransitionGrid

友情链: IM·体育网上直播_IM·体育赛事最新版_im体育官网在线官网在线 | im体育app平台下载|IM体育v2.3 安卓版|IM体育今天官网赛表 | im体育推荐官网_im体育今晚高清_im体育买软件 | 2022im体育网网址_分析观看比赛_2022im体育在线软件 | IM体育开户网址-Im体育官方网站-IM体育期胜负彩专家分析 | im电竞体育登录入口_IM·体育比分分析在线_IM·体育v8.5 IOS版 | im体育app官网下载|IM体育最新今天观看|IM体育赛事注册 |