Vue Infinite Scroll Component

A simple vue infinite scroll component with animated effect while scrolling page it’ll show loading image will append next page data.



npm install vue-scroll-loader


<script src=""></script>


Put <scroll-loader/> below the list, and use loader-* props to define its options.

When the scroll-loader reaches the bottom of the viewport, the method specified by loader-method is executed.

<scroll-loader :loader-method="getImageList" :loader-disable="disable">

<!-- Replace the default loading animation with slot -->
<scroll-loader :loader-method="getImageList" :loader-disable="disable">
import Vue from 'vue'
import ScrollLoader from 'vue-scroll-loader'


new Vue({
    el: '#app',
    data() {
      return {
        disable: false,
        page: 1,
        pageSize: 30,
        images: [],
    methods: {
      getImageList() {
        axios.get('', {
            params: {
              pageSize: this.pageSize,
          .then(res => {
            this.images = [...this.images,]

            this.disable = < this.pageSize
          .catch(error => {


Props Description Required Type Default
loader-method Scrolling to the bottom to execute the method. true Function
loader-disable Scroll-loader will be disabled if the value of this props is true. false Boolean false
loader-distance The minimum distance between 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 #CCCCCC
loader-size scroll-loader the size of the animation. false Number 50
loader-viewport scroll-loader relative viewport element,default top-level document viewport. false Element viewport

See live demo and download source code.


This awesome script developed by molvqingtai. Visit their official repository for more information and follow for future updates.

Don’t forget to Subscribe My Public Notebook for more useful free scripts, tutorials and articles.