728x90
1. 최종 프로젝트
JS로 페이지네이션 구현하기 ~ 프론트에서 페이지네이션 : 언젠간 참고하지 싶어 남기는 코드
<script>
$(document).ready(function () {
getProducts()
});
renderPagination: function getProducts(){
// 현재 게시물의 전체 개수가 20개 이하면 pagination을 숨깁니다.
if (_totalCount <= 20) return;
const totalPage = Math.ceil(_totalCount / 20); // 총 페이지 수 = math.ceil(전체 개수/ 한 페이지에 나타날 data 수);
const pageGroup = Math.ceil(currentPage / 10); // 화면에 보여질 페이지 그룹 = math.ceil(현재 페이지/ 한 화면에 나타날 페이지 수);
let last = pageGroup * 10; // 화면에 보이는 마지막 페이지
if (last > totalPage) {
last = totalPage;
} // 마지막 페이지의 값이 총 페이지보다 많으면 둘은 같다
const first = last - (10 - 1) <= 0 ? 1 : last - (10 - 1); // 첫번째 페이지 = 마지막 페이지 - ( 한 화면에 나타날 페이지 수 - 1)
const next = last + 1;
const prev = first - 1;
const fragmentPage = document.createDocumentFragment();
if (prev > 0) { // 맨 처음으로, 이전으로 페이지 전환하기
let allpreli = document.createElement('li');
allpreli.insertAdjacentHTML("beforeend", `<a href='#js-bottom' id='allprev'><<</a>`);
let preli = document.createElement('li');
preli.insertAdjacentHTML("beforeend", `<a href='#js-ottom' id='prev'><</a>`);
fragmentPage.appendChild(allpreli);
fragmentPage.appendChild(preli);
}
for (var i = first; i <= last; i++) { // 페이지 리스트 번호 출력하기
const li = document.createElement("li");
li.insertAdjacentHTML("beforeend",
`<a href='#js-bottom' id='page-${i}' data-num='${i}'>${i}</a>`);
fragmentPage.appendChild(li);
}
if (last < totalPage) { // 맨 뒤로, 다음으로 페이지 전환
var allendli = document.createElement('li');
allendli.insertAdjacentHTML("beforeend", `<a href='#js-bottom' id='allnext'>>></a>`);
var endli = document.createElement('li');
endli.insertAdjacentHTML("beforeend", `<a href='#js-bottom' id='next'>></a>`);
fragmentPage.appendChild(endli);
fragmentPage.appendChild(allendli);
}
// 페이지 목록 생성하기
document.getElementById('js-pagination').appendChild(fragmentPage);
}
$(`#js-pagination a`).removeClass("active");
$(`#js-pagination a#page-${currentPage}`).addClass("active");
$("#js-pagination a").click(function (e) {
e.preventDefault();
var $item = $(this);
var $id = $item.attr("id");
var selectedPage = $item.text();
if ($id == "next") selectedPage = next;
if ($id == "prev") selectedPage = prev;
if ($id == "allprev") selectedPage = 1;
if ($id == "allnext") selectedPage = totalPage;
list.renderPagination(selectedPage); // 페이지네이션 그리는 함수
list.search(selectedPage); // 페이지 그리는 함수
});
</script>
참고한 글 : https://velog.io/@eunoia/JS%EB%A1%9C-Pagination-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0
JS로 Pagination 구현하기
출처페이지네이션이란 콘텐츠를 여러 페이지고 나누고, 이전 혹은 다음 페이지로 넘어가거나 특정 페이지로 넘어갈 수 있는 일련의 링크를 페이지 상단이나 하단에 배치하는 방법입니다.게시
velog.io
제품 상세 조회 페이지 구현
오늘 배운 점 : 프론트는 레포지토리를 따로 쓴다.. 빌드를 따로 하는 경우에
728x90
'내일배움캠프 4기 스프링 > 내배캠 TIL📘' 카테고리의 다른 글
02. 23 TIL (0) | 2023.02.23 |
---|---|
02. 22 TIL (0) | 2023.02.22 |
02. 18 TIL (0) | 2023.02.20 |
02. 17 TIL (0) | 2023.02.17 |
02. 16 TIL (0) | 2023.02.17 |