"infini scroll"
Bootstrap 3.0.0 Snippet by evarevirus

<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <!DOCTYPE html><html class=''> <head><script src='//production-assets.codepen.io/assets/editor/live/console_runner-079c09a0e3b9ff743e39ee2d5637b9216b3545af0de366d4b9aad9dc87e26bfd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/events_runner-73716630c22bbc8cff4bd0f07b135f00a0bdc5d14629260c3ec49e5606f98fdd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/css_live_reload_init-2c0dc5167d60a5af3ee189d570b1835129687ea2a61bee3513dee3a50c115a77.js'></script><meta charset='UTF-8'><meta name="robots" content="noindex"><link rel="shortcut icon" type="image/x-icon" href="//production-assets.codepen.io/assets/favicon/favicon-8ea04875e70c4b0bb41da869e81236e54394d63638a1ef12fa558a4a835f1164.ico" /><link rel="mask-icon" type="" href="//production-assets.codepen.io/assets/favicon/logo-pin-f2d2b6d2c61838f7e76325261b7195c27224080bc099486ddd6dccb469b8e8e6.svg" color="#111" /><link rel="canonical" href="https://codepen.io/CSWApps/pen/aVoBPW" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel='stylesheet prefetch' href='https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/flatly/bootstrap.min.css'><link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css'> <style class="cp-pen-styles">body { background-color: #5c4084; padding: 50px; } .container { padding: 40px 80px 15px 80px; background-color: #fff; border-radius: 8px; max-width: 800px; } .heading { text-align: center; } .heading h1 { background: -webkit-linear-gradient(#fff, #999); -webkit-text-fill-color: transparent; -webkit-background-clip: text; text-align: center; margin: 0 0 5px 0; font-weight: 900; font-size: 4rem; color: #fff; } .heading h4 { color: #a990cc; text-align: center; margin: 0 0 35px 0; font-weight: 400; font-size: 24px; } .list-group-wrapper { position: relative; } .list-group { overflow: auto; height: 50vh; border: 2px solid #dce4ec; border-radius: 5px; } .list-group-item { margin-top: 1px; border-left: none; border-right: none; border-top: none; border-bottom: 2px solid #dce4ec; } .loading { text-align: center; position: absolute; color: #fff; z-index: 9; background: #5c4084; padding: 8px 18px; border-radius: 5px; left: calc(50% - 45px); top: calc(50% - 18px); } .fade-enter-active, .fade-leave-active { transition: opacity 0.5s; } .fade-enter, .fade-leave-to { opacity: 0; } </style></head><body> <div class="heading"> <h1>Infinite Scroll</h1> <h4>A simple infinite scroll example using Vue.js</h4> </div> <div class="container" id="app"> <div class="list-group-wrapper"> <transition name="fade"> <div class="loading" v-show="loading"> <span class="fa fa-spinner fa-spin"></span> Loading </div> </transition> <ul class="list-group" id="infinite-list"> <li class="list-group-item" v-for="item in items" v-text="item"></li> </ul> </div> </div> <script src='//production-assets.codepen.io/assets/common/stopExecutionOnTimeout-b2a7b3fe212eaa732349046d8416e00a9dec26eb7fd347590fbced3ab38af52e.js'></script><script src='https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.4/vue.js'></script> <script > new Vue({ el: '#app', data: { loading: false, nextItem: 1, items: [] }, mounted () { // Detect when scrolled to bottom. const listElm = document.querySelector('#infinite-list'); listElm.addEventListener('scroll', e => { if(listElm.scrollTop + listElm.clientHeight >= listElm.scrollHeight) { this.loadMore(); } }); // Initially load some items. this.loadMore(); }, methods: { loadMore () { /** This is only for this demo, you could * replace the following with code to hit * an endpoint to pull in more data. **/ this.loading = true; setTimeout(e => { for (var i = 0; i < 20; i++) {if (window.CP.shouldStopExecution(1)){break;} this.items.push('Item ' + this.nextItem++); } window.CP.exitedLoop(1); this.loading = false; }, 200); /**************************************/ } } }); //# sourceURL=pen.js </script> </body></html>

Related: See More


Questions / Comments: