Nearly Past Midnight

    react-scroll-into-view-if-needed
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/react-scroll-into-view-if-needed package

    3.0.1 • Public • Published

    Build Status Coverage Status

    A thin react component wrapper bundled with the fantastic scroll-into-view-if-needed ponyfill.

    Install

    yarn add react-scroll-into-view-if-needed

    or

    npm install react-scroll-into-view-if-needed --save

    Usage

    import ScrollIntoViewIfNeeded from 'react-scroll-into-view-if-needed';
    
    const MyComponent = () => (
      <div style={{ paddingTop: 2000 }}>
        <ScrollIntoViewIfNeeded>
          <div>Hello</div>
        </ScrollIntoViewIfNeeded>
      </div>
    );

    Props

    Each prop is described in detail below, but for a quicker reference - check out the propTypes object in src.

    options

    Type: object Default: { behavior: 'smooth', scrollMode: 'if-needed' }

    Full list of options are described here

    <ScrollIntoViewIfNeeded options={{
      scrollMode: 'always',
    }}>
      <div>Hello</div>
    </ScrollIntoViewIfNeeded>

    active

    Type: boolean Default: true

    The active prop allows controll of when to scroll to the component. By default, it will attempt to scroll as soon as it is mounted, but you can set this prop to manually control when to trigger the scroll behavior from the parent component.

    class Example extends React.PureComponent {
      constructor(props) {
        super(props);
        this.state = { active: false };
      }
    
      handleScrollToggle = () => this.setState({ active: !this.state.active });
    
      render() {
        const { active } = this.state;
    
        return (
          <div>
            <button onClick={this.handleScrollToggle}>Scroll</button>
            <div style={{ paddingTop: 2000 }}>
              <ScrollIntoViewIfNeeded active={active}>
                <div>Hello</div>
              </ScrollIntoViewIfNeeded>
            </div>
          </div>
        );
      }
    }

    elementType

    Type: string Default: 'div'

    Set the wrapper component type. For example, this could also be 'footer', 'button', etc... See the React createElement api.

    <ScrollIntoViewIfNeeded elementType="span">
      <div>Hello</div>
    </ScrollIntoViewIfNeeded>

    className, id, etc

    You can also pass normal element attributes like className to the component.

    <ScrollIntoViewIfNeeded elementType="span" className={styles.something}>
      <div>Hello</div>
    </ScrollIntoViewIfNeeded>

    Standalone Version

    The standalone version does not come bundled with scroll-into-view-if-needed. Use this version if you'd like to maintain your own dependency, or if you're already using scroll-into-view-if-needed in other areas of your project.

    ES version:

    import ScrollIntoViewIfNeeded from 'react-scroll-into-view-if-needed/dist/es/standalone.js'

    UMD version:

    import ScrollIntoViewIfNeeded from 'react-scroll-into-view-if-needed/dist/umd/standalone.js'

    Upgrading from v1

    This project has been updated along with scroll-into-view-if-needed and accepts the same options. Check out the migration guide over there!

    Install

    npm i react-scroll-into-view-if-needed

    DownloadsWeekly Downloads

    7,983

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    144 kB

    Total Files

    33

    Last publish

    Collaborators

    • icd2k3