1.1.1 • Published 4 years ago

react-use-scroll-indicator v1.1.1

Weekly downloads
111
License
MIT
Repository
github
Last release
4 years ago

React useScrollIndicator hook

npm

Create your own scroll indicators using this simple, but very versatile hook.

[state, api] =  useScrollIndicator(options);

Simple Usage

Scroll tracking for the whole page

import * as React from 'react';
import { useScrollIndicator } from 'react-use-scroll-indicator';

export const BlogPost = () => {
  const [state] = useScrollIndicator();

  return (
    <section>
      <div>Percent of page scrolled: {state.width}%</div>
      <article>... Main content ...</article>
    </section>
  );
};

Scroll tracking for the specific element

import * as React from 'react';
import { useScrollIndicator } from 'react-use-scroll-indicator';

export const BlogPost = () => {
  const [state] = useScrollIndicator({ onElement: true });

  return (
    <section>
      <div>Percent of element scrolled: {state.width}%</div>
      <article ref={state.targetElement}>
        ... Scroll percentage will be calculated only on this element ...
      </article>
      <div>This element won't be included in the calculation.</div>
    </section>
  );
};

Options

KeyTypeDefault ValueDescription
onElementbooleanfalseIf set to true, it will return a ref that needs to be assigned to the element that will be used in scroll indicator
precisionnumber2Decimal places of percentage that will be used for scroll indicator.
initialValuenumber0Initial value of the percentage for scroll indicator.

State and API

Hook returns the following variables and methods.

[state, api] =  useScrollIndicator(options);

State

KeyDescription
valueScroll percentage
targetElementref that can be assigned to an element. Returned only if onElement is set to true

API

KeyDescription
activeListenerCurrently active scroll listener.
setScrollStateMethod that sets the value of the hook.

Issues and Contributions

Feel free to report issues you find and feel free to contribute to the project by creating Pull Requests.

Contributions are welcome and appreciated!

Support

The project is created and maintained by Adrian Bece with the generous help of community contributors. If you have used the plugin and would like to contribute, feel free to Buy Me A Coffee.

1.1.1

4 years ago

1.1.0

4 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago