| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/node_modules/vue2-perfect-scrollbar/ |
Upload File : |
# vue2-perfect-scrollbar
Vue.js minimalistic but powerful wrapper for perfect scrollbar
# Why I Created it ?
Because I ❤️ to use [perfect-scrollbar](https://github.com/utatti/perfect-scrollbar) in my projects (🙌 [utatti](https://github.com/utatti)). But also because the current solutions on github are outdated or overcomplicated.
# Why would you use it ?
Because you want to load [perfect-scrollbar](https://github.com/utatti/perfect-scrollbar#) to your Vue project in an easy way. But also because this plugin is updated, tested and build by rollup. So you will not find any unnecessary 💩 code in this repo. I hope 🙏.
If you have any reasonable PR you are welcome 🤘
# Install
## npm
```sh
npm install vue2-perfect-scrollbar
```
## yarn
```sh
yarn add vue2-perfect-scrollbar
```
# How to use
## Global Registration
```js
import PerfectScrollbar from 'vue2-perfect-scrollbar'
import 'vue2-perfect-scrollbar/dist/vue2-perfect-scrollbar.css'
Vue.use(PerfectScrollbar)
```
So then you can use this plugin in each component as
```html
<perfect-scrollbar>
<p> Lorem Ipsum is simply dummy text of the printing and typesetting industry. </p>
</perfect-scrollbar>
```
This plugin will generate a container with ".ps" class name, you need to customize the height of the container
```css
/* example */
.ps {
height: 400px;
}
```
[](https://codesandbox.io/s/wn7q7o9ww7)
### Global options
Install method takes additional parameters:
#### `name {String}`
Name of your global component.
**Default**: `PerfectScrollbar`
#### `tag {String}`
Tag which will be render as perfect scrollbar container
**Default**: `div`
#### `watchOptions {Boolean}`
Set true if you want to update perfect-scrollbar on options change
**Default**: `false`
#### `options {Object}`: [Options](https://github.com/utatti/perfect-scrollbar#options)
perfect-scrollbar options.
**Default**: `{}`
## Local Registration
```html
<template>
<div>
<perfect-scrollbar>
<p> Lorem Ipsum is simply dummy text of the printing and typesetting industry. </p>
</perfect-scrollbar>
</div>
</template>
<script>
import { PerfectScrollbar } from 'vue2-perfect-scrollbar'
export default {
components: {
PerfectScrollbar
}
}
</script>
<style src="vue2-perfect-scrollbar/dist/vue2-perfect-scrollbar.css"/>
```
[](https://codesandbox.io/s/32o7m59xzm)
# Props
#### `tag {String}`
Tag which will be render as perfect scrollbar container
**Default**: `div`
#### `watchOptions {Boolean}`
Set true if you want to update perfect-scrollbar on options change
**Default**: `false`
#### `options {Object}`: [Options](https://github.com/utatti/perfect-scrollbar#options)
perfect-scrollbar options.
# Events
You can listen on every event which offer you perfect-scrollbar. [Read more](https://github.com/utatti/perfect-scrollbar#events)
# DEMO
[https://mercs600.github.io/vue2-perfect-scrollbar/](https://mercs600.github.io/vue2-perfect-scrollbar/). You can also fork example from [codesandbox](https://codesandbox.io/embed/32o7m59xzm)
# Cookbook
## Custom scrollbar behavior with router.
One of simple solution to setup custom scrollbar to top when your route is changed.
1. Add perfect scrollbar as wrapper for router-view and add simple ref
```html
<perfect-scrollbar ref="scroll">
<router-view></router-view>
</perfect-scrollbar>
```
2. Add watch on $route to setup scroll container to 0, when route is changed.
```js
watch: {
$route() {
this.$refs.scroll.$el.scrollTop = 0;
}
}
```
[](https://codesandbox.io/s/vue-routing-example-jbokc?fontsize=14&hidenavigation=1&theme=dark)