Skip to content

delpikye-v/react-perfect-scrollbar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-perfect-scrollbar-z


LIVE EXAMPLE

Description

  • It is wrap the perfect-scrollbar for the element.

  • Auto update scrollbar (resize, change data), you don't have to do anything.

  • Support for scroll-y for only the body of the table. (Keep header)


Usage

npm install react-perfect-scrollbar-z

Import the module in the place you want to use:

import 'react-perfect-scrollbar-z/build/styles.css';

import Scrollbar from 'react-perfect-scrollbar-z'

Snippet

simple
    // tagName = 'div' wrapName='div'
    // something1 (..any, showHide, data2, data3)
    <Scrollbar height="100px" effectData={something1...}>
        { something1...  }
    </Scrollbar>

special tagName (tbody, ul, dl, ol)
    // const refScroll = useRef(null) // you handle scrollbars
    <Scrollbar
        tagName="tbody" // tbody, ul, dl, ol
        maxHeight="400px"
        className="list-group"
        effectData={listData}
        always
        // onScrollY={evt => console.log(evt)}
        // refScroll={refScroll}
    >
        { listData.map(item => <tr>...</tr>) }
    </Scrollbar>
// access scrollbar (your handler)
refScroll.current.element.scrollTop = 0  || refScroll.current.update()


props

props type description
options Object perfect-scrollbar/options
tagName String Container scrollbar. Default div
effectData String, Array, Object,..... Automatically update the scrollbar if the effectData has changed.
always boolean Always show scrollbar if data is overflow (true). Default false
maxHeight px, %, vh max-height of scrollbar
height px, %, vh height of scrollbar
maxWidth px, %, vw max-width of scrollbar
width px, %, vw width of scrollbar
className String Your css-class
style Object Your css-style
libTable Boolean When you update for 3th-party table. Default false
wrapName String Wrap all element scroll (div).When tagName is not in [tbody, ul, ol, dl.]
wheelStop Boolean wheelPropagation (quick in options). Default: true
refScroll useRef If you want to use scrollbars (ps scrollbar)
--- --- ---
onScrollY Function y-axis is scrolled in either direction.
onScrollX Function x-axis is scrolled in either direction.
onScrollUp Function scrolling upwards.
onScrollDown Function scrolling downwards.
onScrollLeft Function scrolling to the left.
onScrollRight Function scrolling to the right.
onYReachStart Function scrolling reaches the start of the y-axis.
onYReachEnd Function scrolling reaches the end of the y-axis (useful for infinite scroll).
onXReachStart Function scrolling reaches the start of the x-axis.
onXReachEnd Function scrolling reaches the end of the x-axis (useful for infinite scroll).

Note

  • tbody only scroll-y (no x). You should not use maxWidth, width (default by table).

  • Update scrollTop, scrollLeft: using refScroll

  • ul/ol/dl/tbody. This is a special. (multi childs), so you shouldn't update the border for tagName.

<Scrollbar style={{ border: "1px solid" }} tagName="tbody" ... /> => no
<parent style={{ border: "1px solid" }}> <Scrollbar tagName="tbody" ... /> </parent> => OK
  • libTable
<Scrollbar libTable={true}><CustomTag></CustomTag></Scrollbar>

It will try to add the perfect scrollbar to the `tbody` of the `first` table found. (Checking...)
  • you should use ul/dl/ol with basic
<Scrollbar effectData={abcd} .... > <ul> <for>...</for> </ul> <Scrollbar>

RUN

LIVE EXAMPLE

npm install
npm run dev
npm run start

License

MIT

About

React Wrap for perfect-scrollbar (create npm lib)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published