react-scroll-into-view-if-needed

A thin react component wrapper bundled with scroll-into-view-if-needed

Github星跟蹤圖

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!

主要指標

概覽
名稱與所有者icd2k3/react-scroll-into-view-if-needed
主編程語言JavaScript
編程語言JavaScript (語言數: 1)
平台
許可證MIT License
所有者活动
創建於2018-04-17 21:24:47
推送於2023-03-04 03:28:40
最后一次提交2021-06-08 08:27:07
發布數14
最新版本名稱3.0.1 (發布於 )
第一版名稱1.0.1 (發布於 )
用户参与
星數33
關注者數2
派生數8
提交數47
已啟用問題?
問題數4
打開的問題數1
拉請求數18
打開的拉請求數4
關閉的拉請求數1
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?