Frontend pagination with vanilla JavaScript - OpenJavaScript.info
Tue Jul 26 2022 22:05:21 GMT+0000 (Coordinated Universal Time)
Saved by
@gsinghg19
#javascript
const content = document.querySelector('#content-page');
const nav = document.querySelector('#nav');
let pageIndex = 0; // Starts at page 0
let itemsPerPage = 2; // 2 items per page
loadItems() // Call the load items function
function loadItems() {
// Clear any existing content
content.innerHTML = "";
// Loop set to start at pageIndex*itemsPerPage and finish after one itemsPerPage
for (i=pageIndex*itemsPerPage; i<((pageIndex*itemsPerPage)+itemsPerPage); i++) {
// Write content into new element
const item = document.createElement('div');
item.innerHTML = `
<div>
<img src="${items[i].src}" loading="lazy"/>
</div>
<div>
<span>${items[i].desc}</span>
</div>
`
// Append to the DOM when finished
content.append(item);
}
loadPageNav() // Update page navigation after new items are loaded
}
function loadPageNav() {
// Clear nav content before updating
nav.innerHTML = "";
for (i=0; i<(items.length/itemsPerPage); i++) {
// Create span for each page value
let span = document.createElement('span');
span.innerHTML = i+1;
// Add event listener to each that will update pageIndex and then call loadItems
span.addEventListener('click', (e) => {
pageIndex = e.target.innerHTML-1;
loadItems();
});
// Add styling if current page in navigation
if (i === pageIndex) {
span.style.fontSize = "1.7rem";
}
// Append each span inside navigation elements
nav.append(span);
}
}
content_copyCOPY
https://openjavascript.info/2022/05/23/frontend-pagination-with-vanilla-javascript/#JavaScript
Comments