Really simple way to add reveal on scroll animation to your React app.
npm install react-reveal-iframereact-reveal is regularly checked against googlebot in the Google Search Console to make sure that googlebot can see the content in the revealed elements.
sh
npm install react-reveal --save
`
Alternatively you may use yarn:
`sh
yarn add react-reveal
`
Quick Start
Import effects from React Reveal to your project. Lets try Zoom effect first:
`javascript
import Zoom from 'react-reveal/Zoom';
`
Place the following code somewhere in your render method:
`jsx
Markup that will be revealed on scroll
`
You should see zooming animation that reveals text inside the tag. You can change this text to any JSX you want. If you place this code further down the page you'll see that it'd appear as you scroll down.
Revealing React Components
You may just wrap your custom React component with the effect of your choosing like so:
`jsx
`
In such case, in the resulting HTML markup will be wrapped in a div tag. If you would rather have a different HTML tag then wrap in a tag of your choosing:
`jsx
`
or if you want to customize div props:
`jsx
`
Revealing Images
If you want to reveal an image you can wrap img tag with with the desired react-reveal effect:
`jsx
`
It would be a very good idea to specify width and height of any image you wish to reveal.
Children
react-reveal will attach a reveal effect to each child it gets. In other words,
`jsx
First Child
Second Child
`
will be equivalent to:
`jsx
First Child
Second Child
`
If you don't want this to happen, you should wrap multiple children in a div tag:
`jsx
First Child
Second Child
`
Server Side Rendering
react-reveal supports server side rendering out of the box. In some cases, when the javascript bundle arrives much later than the HTML&CSS it might cause a flickering. To prevent this react-reveal will not apply reveal effects on the initial load.
Another option is to apply gentle fadeout effect on the initial render. You can force it on all react-reveal elements by placing the following code somewhere near the entry point of your app:
`jsx
import config from 'react-reveal/globals';
config({ ssrFadeout: true });
`
Or you you can do it on a per element basis using ssrFadeout prop:
`jsx
Content
`
One last option is to use ssrReveal prop. If enabled, this option will suppress both flickering and ssrFadeout effect. The unfortunate drawback of this option is that the revealed content will appear hidden to Googlebot and to anyone with javascript switched off. So it will makes sense for images and/or headings which are duplicated elsewhere on the page.
Forking This Package
Clone the this repository using the following command:
`sh
git clone https://github.com/rnosov/react-reveal.git
`
In the cloned directory, you can run following commands:
`sh
npm install
`
Installs required node modules
`sh
npm run build
`
Builds the package for production to the dist folder
`sh
npm test
``