UNPKG

react-reveal

Version:

Really simple way to add reveal on scroll animation to your React app.

59 lines (47 loc) 1.47 kB
/* * Jump React Component * * Copyright © Roman Nosov 2017 * Original CSS Effect - Copyright (c) 2016 Daniel Eden * * This source code is licensed under the MIT license found in the * LICENSE.txt file in the root directory of this source tree. */ import { bool, number } from 'prop-types'; import wrap from '../lib/wrap'; import { animation, defaults } from '../lib/globals'; const propTypes = { duration: number, timeout: number, delay: number, count: number, forever: bool, }; const rule = ` from, 20%, 53%, 80%, to { animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); transform: translate3d(0,0,0); } 40%, 43% { animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); transform: translate3d(0, -30px, 0); } 70% { animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); transform: translate3d(0, -15px, 0); } 90% { transform: translate3d(0, -4px, 0); } `; let name = false; function make() { return name || (name = animation(rule)); } function Jump({ children, out, timeout, duration = defaults.duration, delay = defaults.delay, count = defaults.count, forever, ...props } = defaults) { const effect = { make, duration: timeout === undefined ? duration : timeout, delay, forever, count, style: { animationFillMode: 'both', } }; return wrap(props, effect, false, children, true); } Jump.propTypes = propTypes; export default Jump;