A pure JavaScript basic implementation of infinite scrolling.
Forked from Wryte's Pen Infinite Scroll.
| <ul id='infinite-list'> | |
| </ul> |
| var listElm = document.querySelector('#infinite-list'); | |
| // Add 20 items. | |
| var nextItem = 1; | |
| var loadMore = function() { | |
| for (var i = 0; i < 20; i++) { | |
| var item = document.createElement('li'); | |
| item.innerText = 'Item ' + nextItem++; | |
| listElm.appendChild(item); | |
| } | |
| } | |
| // Detect when scrolled to bottom. | |
| listElm.addEventListener('scroll', function() { | |
| if (listElm.scrollTop + listElm.clientHeight >= listElm.scrollHeight) { | |
| loadMore(); | |
| } | |
| }); | |
| // Initially load some items. | |
| loadMore(); |
| #infinite-list { | |
| /* We need to limit the height and show a scrollbar */ | |
| width: 200px; | |
| height: 300px; | |
| overflow: auto; | |
| /* Optional, only to check that it works with margin/padding */ | |
| margin: 30px; | |
| padding: 20px; | |
| border: 10px solid black; | |
| } | |
| /* Optional eye candy below: */ | |
| li { | |
| padding: 10px; | |
| list-style-type: none; | |
| } | |
| li:hover { | |
| background: #ccc; | |
| } |