1.1.1 • Published 2 years ago

vue-perfect-scrollbar-z v1.1.1

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, data change), you don't have to do anything.

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


Usage

npm install vue-perfect-scrollbar-z --save

Import the module in the place you want to use:

/*
if you use perfect-scrollbar in many places you should import css in main file (override avoid)
*/
import 'vue-perfect-scrollbar-z/dist/styles.css';  // > ver 1.0.0

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

Snippet

simple
    // tagName = 'div' wrapName='div'
    // something1 = [effect1, effect2, listData, showHide, ..., somthing]
    <Scrollbar height="100px" :effectData="something1" >
        { something1 }
    </Scrollbar>
special tagName (tbody, ul, dl, ol)
    <Scrollbar
        ref="refScroll"
        tagName="tbody" // tbody, ul, dl, ol
        maxHeight="400px"
        className="list-group"
        :effectData="listData"
        // always
        // @onScrollY="scrolling"  // function scrolling
    >
        ...for data
    </Scrollbar>
// access scrollbar (your handler)
let { scrollbar } = this.$refs.refScroll
scrollbar.element.scrollTop = 0 // or something

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
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. (wheelPropagation or wheelStop)
---------
@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).

  • 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
// `maxHeight`, `height`, `maxWidth`, `width` => try to tbody
<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