A scroll loading component for vue.js
vue-scroll-loader
A scroll loading component for vue.js.
Install
NPM
npm install vue-scroll-loader
CDN
<script src="https://unpkg.com/vue-scroll-loader"></script>
Usage
Use <scroll-loader/>
to enable the scroll load, and use loader-* props to define its options.
The method appointed as the props of loader-method will be executed when the bottom of the scroll-loader reaches the bottom of the viewport.
<scroll-loader :loader-method="getImagesInfo" :loader-enable="loadMore">
</scroll-loader>
<!-- Replace the default loading animation with slot -->
<scroll-loader :loader-method="getImagesInfo" :loader-enable="loadMore">
<div>Loading...</div>
</scroll-loader>
import Vue from 'vue'
import ScrollLoader from 'vue-scroll-loader'
Vue.use(ScrollLoader)
new Vue({
el: '#app',
data() {
return {
loadMore: true,
page: 1,
pageSize: 9,
images: [],
}
},
methods: {
getImagesInfo() {
axios.get('https://api.example.com/', {
params: {
page: this.page++,
per_page: this.pageSize,
}
})
.then(res => {
this.images.concat(res.data)
// Stop scroll-loader
res.data.length < this.pageSize && (this.loadMore = false)
})
.catch(error => {
console.log(error);
})
}
},
mounted() {
this.getImagesInfo()
}
})
Options
Props | Description | Required | Type | Default |
---|---|---|---|---|
loader-method | Scrolling to the bottom to execute the method | true | Function | -- |
loader-enable | Scroll-loader will be disabled if the value of this props is false. | true | Boolean | -- |
loder-throttle | Check the frequency of scrolling to the bottom (ms) | false | Number | 100 |
loader-distance | The minimum distance between the bottom of the scroll-loader and the bottom of the viewport before the ":loader-method" method is executed. | false | Number | 0 |
loader-color | scroll-loader the color of the animation | false | String | #96C8FF |
loader-size | scroll-loader the size of the animation | false | String | 35px |