Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-scroll-into-view-if-needed

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-scroll-into-view-if-needed

A thin component wrapper around scroll-into-view-if-needed

  • 3.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5.4K
increased by15.31%
Maintainers
1
Weekly downloads
 
Created
Source

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!

Keywords

FAQs

Package last updated on 08 Jun 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc