项目作者: jcoreio

项目描述 :
sequential fade-out, fade-in component, with optional height/width animation. Works with react-router
高级语言: JavaScript
项目地址: git://github.com/jcoreio/react-fader.git
创建时间: 2017-06-27T22:03:51Z
项目社区:https://github.com/jcoreio/react-fader

开源协议:MIT License

下载


react-fader

CircleCI
Coverage Status
semantic-release
Commitizen friendly
npm version

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!

Usage

  1. npm install --save react-fader
  1. import React from 'react'
  2. import ReactDOM from 'react-dom'
  3. import Fader from 'react-fader'
  4. ReactDOM.render(
  5. <Fader>
  6. <h3>Foo</h3>
  7. </Fader>,
  8. document.getElementById('root')
  9. )
  10. // Just change its children to something !==, and it will perform a fade transition.
  11. ReactDOM.render(
  12. <Fader>
  13. <h3>Bar</h3>
  14. </Fader>,
  15. document.getElementById('root')
  16. )

Transitioning between child routes with react-router version 4

While it can be done with <Switch>, I recommend using
react-router-transition-switch instead:

  1. import {Route, BrowserRouter as Router} from 'react-router-dom'
  2. import TransitionSwitch from 'react-router-transition-switch'
  3. import Fader from 'react-fader'
  4. <Router>
  5. <TransitionSwitch component={Fader}>
  6. <Route path="/red" component={Red}></Route>
  7. <Route path="/green" component={Green} ></Route>
  8. <Route path="/blue" component={Blue} ></Route>
  9. </TransitionSwitch>
  10. <Router>

Props

animateHeight: boolean (default: true)

If truthy, Fader will animate its height to match the height of its children.

animateWidth: boolean (default: true)

If truthy, Fader will animate its width to match the height of its children.

shouldTransition: (oldChildren: any, newChildren: any) => boolean (default: compares keys)

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.

fadeOutTransitionDuration: number (default: 200)

The duration of the fade out transition, in milliseconds.

fadeOutTransitionTimingFunction: string (default: 'ease')

The timing function for the fade out transition.

fadeInTransitionDuration: number (default: 200)

The duration of the fade in transition, in milliseconds.

fadeInTransitionTimingFunction: string (default: 'ease')

The timing function for the fade in transition.

sizeTransitionDuration: number (default: 200)

The duration of the size transition, in milliseconds.

sizeTransitionTimingFunction: string (default: 'ease')

The timing function for the size transition.

prefixer: Prefixer

If given, overrides the inline-style-prefixer used to autoprefix inline styles.

className: string

Any extra class names to add to the root element.

style: Object

Extra inline styles to add to the root element.

viewStyle: Object

Extra inline styles to add to the view wrapper elements.

innerViewWrapperStyle: Object

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.)