Easily detect scroll direction changes.
npm install @serafinomb/react-scroll-direction
withScrollDirection(Component[, offsetThreshold = 0])- Component Your React component;
- offsetThreshold Integer value. While the scroll amount (pixels from the top
of the document) is below or equal to
offsetThreshold,scrollDirectionis going to benull.
Your component will receive the scrollDirection property which can assume the following values:
nullwhen the scroll amount is less than or equal tooffsetThreshold.- SCROLL_DIRECTION_DOWN when scrolling down (and the scroll amount is greater
than
offsetThreshold); - SCROLL_DIRECTION_UP when scrolling up (and the scroll amount is greater than
offsetThreshold);
import withScrollDirection, {
SCROLL_DIRECTION_DOWN,
} from '@serafinomb/react-scroll-direction';
// 2. With the scrollDirection property, apply the right className to
// show or hide the header.
const App = ({ scrollDirection }) => (
<div>
<div className={`header ${scrollDirection === SCROLL_DIRECTION_DOWN ? 'is-hidden' : ''}`}>
My website header
</div>
...
</div>
);
// 1. Pass the component to the withScrollDirection HOC and optionally
// specify an `offsetThreshold`
export default withScrollDirection(App, 80);A demo can be found at /example.
To run it locally, clone the repository and run the following commands from the repository root:
npm installnpm run buildnpm packcd examplenpm installnpm run start
As of right now I've not found a convenient way (other than npm link) to
quickly test changes to the /src/index.js file. Since I don't think
there are going to be any new developments in the near future, I'm going
to leave it as is and invest some time to find a better development workflow
when needed.