balm-scroll
v0.6.0
Published
Smooth scrolling for Vue.js
Downloads
14
Maintainers
Readme
Balm Scroll
What is BalmScroll?
iScroll based, smooth scrolling for Vue.js
Demos & Documentation
Quick Start
0. Requirement
1. Install
npm i --save balm-scroll
# OR
yarn add balm-scroll
2. Usage
2.1 Css (Edit my-project/app/styles/global/_vendor.scss
)
@import 'node_modules/balm-scroll/dist/balm-scroll.scss';
2.2 Js (Edit my-project/app/scripts/main.js
)
Default Usage
import Vue from 'vue';
import BalmScroll from 'balm-scroll';
Vue.use(BalmScroll);
Standalone Usage
import Vue from 'vue';
import UiScroll from 'balm-scroll/components/scroll';
// OR
// import UiScrollLite from 'balm-scroll/components/scroll-lite';
// import UiScrollProbe from 'balm-scroll/components/scroll-probe';
// import UiScrollZoom from 'balm-scroll/components/scroll-zoom';
// import UiScrollInfinite from 'balm-scroll/components/scroll-infinite';
Vue.use(UiScroll);
2.3 Vue (Edit a vue component: my-project/app/scripts/views/demos/hello.vue
)
<template>
<ui-scroll :options="options">
<!-- Content -->
</ui-scroll>
</template>
export default {
data() {
return {
options: {
mouseWheel: true
}
};
}
};
2.4 Default css sprites
Download [email protected]
and extract to /path/to/my-project/app/images
.
⚠️: Applicable only for the
<ui-scroll-probe>
3. Configuring
3.1 The many faces of iScroll
<ui-scroll>
<ui-scroll-lite>
<ui-scroll-probe>
<ui-scroll-zoom>
<ui-scroll-infinite>
Tips: You can pick one component that better suits your need
3.2 Options
- See here
4. Props, Slots and Events
4.1 Props
Common props
| Name | Type | Default | Description |
| ---------------- | ----------------------------- | ------- | --------------------------------------------- |
| options
| object
| {}
| iScroll options |
| excludes
| array
| | Excludes for touchmove
event preventDefault |
| pullDownAction
| function(refresh: Function)
| null
| Pull down action |
| pullUpAction
| function(refresh: Function)
| null
| Pull up action |
| pullOffset
| number
| 5
| Down and up offset for triggering pull action |
| scrollEnabled
| boolean
| true
| Load more data controls |
<ui-scroll-probe>
extra props
| Name | Type | Default | Description |
| --------------- | -------------------------- | ------------------------ | -------------------- |
| pullDownLabel
| string
| 'Pull down to refresh'
| Pull down label |
| pullUpLabel
| string
| 'Pull up to load more'
| Pull up label |
| releaseLabel
| string
| 'Release to update'
| Release label |
| loadingLabel
| string
| 'Loading...'
| Loading label |
| pullDownY
| number
| 5
| Pull down Y position |
| pullAction
| function(scroll: object)
| null
| Scroll action |
⚠️ Special refresh function for first loaded
<ui-scroll ref="iScroll" :pullUpAction="pullUpAction"></ui-scroll>
export default {
methods: {
firstLoaded() {
// Update here your DOM
this.$refs.iScroll.refresh();
},
pullUpAction(refresh) {
// Update here your DOM
setTimeout(function() {
refresh();
}, 0);
}
}
};
4.2 Slots
| Name | Description |
| ------------------ | -------------------------------------------------- |
| default
| The default slot holds the scroll child components |
| pullDownIcon
⚠️ | Custom pull down icon |
| pullDownLabel
⚠️ | Custom pull down label |
| pullUpIcon
⚠️ | Custom pull up icon |
| pullUpLabel
⚠️ | Custom pull up label |
⚠️: Applicable only for the
<ui-scroll-probe>