Skip to content

Commit bb63f56

Browse files
Pagination
1 parent 87234eb commit bb63f56

File tree

2 files changed

+105
-0
lines changed

2 files changed

+105
-0
lines changed

FE-JS-Questions/Accordion.md

+19
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,26 @@
5353
</div>
5454
```
5555

56+
> Basic CSS for Accordion to function
57+
5658
```css
59+
.AccordionPanel {
60+
border-top: 2px solid grey;
61+
}
62+
63+
.panelBody {
64+
visibility: hidden;
65+
overflow: hidden;
66+
opacity: 0;
67+
height: 0;
68+
transition: opacity .25s visibility .25s;
69+
}
70+
71+
.AccordionPanel.accordion-open .panelBody {
72+
height: auto;
73+
visibility: visible;
74+
opacity: 1;
75+
}
5776
```
5877

5978
```js

FE-JS-Questions/Pagination.md

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
## Pagination
2+
3+
```html
4+
<div class="list"></div>
5+
<div class="buttons">
6+
<button class="first">First</button>
7+
<button class="previous">Previous</button>
8+
<button class="next">Next</button>
9+
<button class="last">Last</button>
10+
</div>
11+
```
12+
13+
```js
14+
const list = [];
15+
const currentPageList = [];
16+
let currentPage = 1;
17+
let numOfPages = 0;
18+
let itemsPerPage = 10;
19+
20+
const makeList = (listLength) => {
21+
for (let i = 1; i <= listLength; i++) {
22+
list.push(i);
23+
}
24+
25+
numOfPages = Math.ceil(listLength / itemsPerPage);
26+
}
27+
28+
const drawList = () => {
29+
const list = document.querySelector(".list");
30+
let items = '';
31+
32+
for (let i = 0; i < currentPageList.length; i++) {
33+
items += 'Item-' + currentPageList[i] + '<br/>';
34+
}
35+
36+
list.innerHTML = items;
37+
}
38+
39+
const updateButtons = () => {
40+
document.querySelector(".next").disabled = currentPage === numOfPages ? true : false;
41+
document.querySelector(".previous").disabled = currentPage === 1 ? true : false;
42+
}
43+
44+
const loadList = (currentPage) => {
45+
let start = (currentPage - 1) * itemsPerPage;
46+
let end = start + itemsPerPage;
47+
48+
currentPageList = list.slice(start, end);
49+
drawList();
50+
updateButtons();
51+
};
52+
53+
const goToPage = pageNum => {
54+
currentPage = pageNum;
55+
loadList(currentPage);
56+
};
57+
58+
const nextPage = () => {
59+
goToPage(currentPage + 1);
60+
};
61+
62+
const prevPage = () => {
63+
goToPage(currentPage - 1);
64+
};
65+
66+
const firstPage = () => {
67+
goToPage(1);
68+
};
69+
70+
const lastPage = () => {
71+
goToPage(numOfPages);
72+
};
73+
74+
makeList(50);
75+
loadList(1);
76+
77+
const nextButton = document.querySelector(".next");
78+
const prevButton = document.querySelector(".previous");
79+
const firstButton = document.querySelector(".first");
80+
const lastButton = document.querySelector(".last");
81+
82+
nextButton.addEventListener('click', nextPage);
83+
prevButton.addEventListener('click', prevPage);
84+
firstButton.addEventListener('click', firstPage);
85+
lastButton.addEventListener('click', lastPage);
86+
```

0 commit comments

Comments
 (0)