Spring Boot
SpringBoot + MariaDB 7-3 스토리 스크롤 페이징
svdjcuwg4638
2023. 6. 14. 09:48
우선 스크롤 페이징을 하기전 스크립트 스크롤함수들을 알아보자
$(window).scroll(() => {
console.log("윈도우 scoroll",$(window).scrollTop());
console.log("문서의 높이",$(document).height());
console.log("윈도우 높이",$(window).height());
});
scroll 은 아래로 내릴수록 더커지고
문서의 높이는 홈페이지 전체 크기이다 (사진이 추가될수록 더 커진다)
윈도우 높이는 지금 사진에 보이는 화면 크기이다 (즉 모니터가 클수록 더 커진다)
그렇담 스크롤 하면서 불러오는 건 어떻게 가져올까
문서의 높이 - 윈도우의 높이가 == scrollTop(스크롤위치) 일때 불러오면 된다.
그렇담 코드를 밑과 같이 작성하고 스크롤을 맨 아래로 한다면 값이 어떻게 되겠는가?
$(window).scroll(() => {
let checkNum = $(window).scrollTop() -($(document).height() - $(window).height());
console.log(checkNum)
});
스크롤을 맨 아래로 하니 0값이 오는걸 확인할 수 있다
자이제 언제 이미지를 불러올지 알았으니 적용 시키러 가보자
story.js
let page = 0; // 페이지 판별을 위해 처음엔 0부터 시작하니 0으로설정
function storyLoad() {
$.ajax({ // 이미지뒤에 쿼리스트링으로 page입력해줌
url : `/api/image?page=${page}`,
dataType : "json"
}).done(res=>{
console.log(res);
res.data.content.forEach((image)=>{
let stoyItem = getStoryItem(image);
$("#storyList").append(stoyItem);
})
}).fail(err=>{
console.log("오류",err)
})
}
$(window).scroll(() => {
// 페이지 전체의 높이에 현재보이는 화면 높이를 빼서 스크롤위치에 -를 하게된다.
let checkNum = $(window).scrollTop() -($(document).height() - $(window).height());
console.log(checkNum)
위 연산이 진행되고 값이 1보다작거나 -1보다 크면 함수 실행
if(checkNum < 1 && checkNum > -1){
page++; // 다음페이지 불러오기 위함
storyLoad();
}
});
스크롤 페이징이 완료되었고 스토리에 대한 글도 끝!
게시물 댓글이나 좋아요는 나중에 구현을 할려한다