1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| //PAGINATION-------------------------------------------------------------------------
var pages = paginate(6, list);
function paginate(n, list) {
return divide(n, list).map(function (items, index) {
var number = n * index;
return {
start: number + 1,
end: number + items.length,
items: items
};
});
}
var header = document.getElementById("pageHeader");
var items = document.getElementById("pageItems");
var buttons = document.getElementById("pageButtons");
appendChildren(buttons, pages.map(function (page, index) {
var button = document.createElement("button");
button.addEventListener("click", display);
button.innerHTML = index + 1;
return button;
function display() {
displayPage(page);
}
}));
displayPage(pages[0]);
function displayPage(page) {
header.innerHTML = "<h6>Résultats " + page.start + " à " + page.end + ":</h6>";
items.start = page.start;
items.innerHTML = "";
appendChildren(items, page.items.map(function (item) {
var li = document.createElement("li");
li.innerHTML = item;
return li;
}));
}
function appendChildren(element, children) {
children.forEach(function (child) {
element.appendChild(child);
});
}
function take(n, list) {
return list.slice(0, n);
}
function drop(n, list) {
return list.slice(n);
}
function concat(lists) {
return Array.prototype.concat.apply(this, lists);
}
function divide(n, list) {
if (list.length) {
var head = take(n, list);
var tail = drop(n, list);
return concat.call([head], [divide(n, tail)]);
} else return [];
}
//end pagination |
Partager