1.2.3 • Published 2 years ago

react-perfect-scrollbar-z v1.2.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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

propstypedescription
optionsObjectperfect-scrollbar/options
tagNameStringContainer scrollbar. Default div
effectDataString, Array, Object,.....Automatically update the scrollbar if the effectData has changed.
alwaysbooleanAlways show scrollbar if data is overflow (true). Default false
maxHeightpx, %, vhmax-height of scrollbar
heightpx, %, vhheight of scrollbar
maxWidthpx, %, vwmax-width of scrollbar
widthpx, %, vwwidth of scrollbar
classNameStringYour css-class
styleObjectYour css-style
libTableBooleanWhen you update for 3th-party table. Default false
wrapNameStringWrap all element scroll (div).When tagName is not in tbody, ul, ol, dl.
wheelStopBooleanwheelPropagation (quick in options). Default: true
refScrolluseRefIf you want to use scrollbars (ps scrollbar)
---------
onScrollYFunctiony-axis is scrolled in either direction.
onScrollXFunctionx-axis is scrolled in either direction.
onScrollUpFunctionscrolling upwards.
onScrollDownFunctionscrolling downwards.
onScrollLeftFunctionscrolling to the left.
onScrollRightFunctionscrolling to the right.
onYReachStartFunctionscrolling reaches the start of the y-axis.
onYReachEndFunctionscrolling reaches the end of the y-axis (useful for infinite scroll).
onXReachStartFunctionscrolling reaches the start of the x-axis.
onXReachEndFunctionscrolling 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