A React Component that fades out its old child, then fades in its new child when its children change.
It can also optionally animate its height and/or width from one child's size to the other.
Works well with react-router
!
npm install --save react-fader
import React from 'react'
import ReactDOM from 'react-dom'
import Fader from 'react-fader'
ReactDOM.render(
<Fader>
<h3>Foo</h3>
</Fader>,
document.getElementById('root')
)
// Just change its children to something !==, and it will perform a fade transition.
ReactDOM.render(
<Fader>
<h3>Bar</h3>
</Fader>,
document.getElementById('root')
)
While it can be done with <Switch>
, I recommend using
react-router-transition-switch
instead:
import {Route, BrowserRouter as Router} from 'react-router-dom'
import TransitionSwitch from 'react-router-transition-switch'
import Fader from 'react-fader'
<Router>
<TransitionSwitch component={Fader}>
<Route path="/red" component={Red}/>
<Route path="/green" component={Green} />
<Route path="/blue" component={Blue} />
</TransitionSwitch>
<Router>
If truthy, Fader
will animate its height to match the height of its children.
If truthy, Fader
will animate its width to match the height of its children.
Allows you to determine whether Fader
should perform a transition from oldChildren
to newChildren
. By default,
it returns true if oldChildren !== newChildren
or their keys are not equal.
The duration of the fade out transition, in milliseconds.
The timing function for the fade out transition.
The duration of the fade in transition, in milliseconds.
The timing function for the fade in transition.
The duration of the size transition, in milliseconds.
The timing function for the size transition.
If given, overrides the inline-style-prefixer
used to autoprefix inline styles.
Any extra class names to add to the root element.
Extra inline styles to add to the root element.
Extra inline styles to add to the view wrapper elements.
Extra inline styles to add to the inner div between the viewStyle
div and your
view content element. (The inner div was added to ensure perfect height
animation.)