Giter Site home page Giter Site logo

huazhuangnan / react-animation-on-scroll Goto Github PK

View Code? Open in Web Editor NEW

This project forked from metinarslanturk/react-animation-on-scroll

1.0 0.0 0.0 828 KB

A react library to animate elements on scroll. It has integration with animate.css. Supports typescript and server side rendering

License: MIT License

JavaScript 5.17% TypeScript 94.83%

react-animation-on-scroll's Introduction

React Animation On Scroll

React component to animate elements on scroll with animate.css. This library is re-implementation of dbramwell/react-animate-on-scroll. Re-implemented the old one with react functional components in TypeScript. Also added [email protected]+ support. Supports server-side rendering and TypeScript.

Install:

npm install react-animation-on-scroll --save

or

yarn add react-animation-on-scroll

Please be sure to include animate.css (version 4 and higher) in someway in your project This can be done in a number of ways, eg:

npm install --save animate.css

or

yarn add animate.css

and then importing in your project:

import "animate.css/animate.min.css";

Or by simply including a link to the file hosted by CDNJS:

<head>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css">
</head>

Most Simple Use:

import { AnimationOnScroll } from 'react-animation-on-scroll';
<AnimationOnScroll animateIn="animate__bounceIn">
  <h2>Some Text</h2>
</AnimationOnScroll>

Properties:

offset - default 150

The "viewport" is by default 150 pixels from the top and bottom of the screen. When part of an element is within the "viewport", animateIn is triggered. When no part of the element is in the "viewport", animateOut is triggered. This size of the "viewport" can be overridden by setting the offset property.

animateIn

Any css animation defined against a class, be it from animate.css or an animation that you have created yourself. The Animation triggers when the element enters the "viewport" (see offset property for more details on this).

animateOut

Any css animation defined against a class, be it from animate.css or an animation that you have created yourself. The Animation triggers when the element is leaving the "viewport" (see offset property for more details on this).

duration - default 1

Animation duration in seconds.

initiallyVisible - default false

Whether the element should be visible to begin with or not. Recomending to set true if you have got server-side rendering.

delay - default 0

How long to delay the animation for (in milliseconds) once it enters or leaves the view.

animateOnce - default false

Whether the element should only animate once or not.

style - default {}

A style object can be assigned to any ScrollAnimation component and will be passed to the rendered dom element. Its probably best to avoid manually setting animationDuration or opacity as the component will modify those attributes.

scrollableParentSelector

By default the code checks to see if the element is visible within the window. This can be changed to any other parent element of the ScrollAnimation by adding a css selector pointing to the parent that you wish to use.

afterAnimatedIn

Callback function to run once the animateIn animation has completed. Receives the visibility of the element at time of execution. Example:

function(visible) {
  if (visible.inViewport) {
    // Part of the element is in the viewport (the area defined by the offset property)
  } else if (visible.onScreen) {
    // Part of the element is visible on the screen
  } else {
    // Element is no longer visible
  }
}

afterAnimatedOut

Callback function to run once the animateOut animation has completed. Receives the visibility of the element at time of execution. Example:

function(visible) {
  if (visible.inViewport) {
    // Part of the element is in the viewport (the area defined by the offset property)
  } else if (visible.onScreen) {
    // Part of the element is visible on the screen
  } else {
    // Element is no longer visible
  }
}

animatePreScroll - default true

By default if a ScrollAnimation is in view as soon as a page loads, then the animation will begin. If you don't want the animation to being until the user scrolls, then set this to false.

Please feel free to contribute or contact from [email protected]

react-animation-on-scroll's People

Contributors

huazhuangnan avatar metinarslanturk avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.