동적 로딩을 할려면 스크롤의 하단 부분을 체크할 수 있어야 하기에 ! 아래부분 인식부터 해보자
사실 구글에 검색하면 바로 나오는 간단한 (?) 조건문이지만
한번도 제대로된 설명을 보지 못했고 정확하지 않은 부분을 발견해서 포스팅하게 되었다. 😖
HTML 부분을 참고하고자 첨부한 사진이다.
크게 볼 건 없지만 혹시나 자바스크립트 삐약이인 나같은 사람들을 위해.. 햇갈리지 말라고 올려본다! 👍
( 화질이 왜이렇게 안좋지..? )
1 2 3 4 5 6 | /** list부분을 스크롤시 발생하는 함수 **/ $("#list").scroll(function(){ if ($(this)[0].scrollHeight - Math.round($(this).scrollTop()) == $(this).outerHeight()){ alert('end'); } }); | cs |
API에 나와 있듯이 true의 매개변수를 넣어주면 된다.
.
.
.
# div 스크롤 체크가 제대로 안되는 현상 #
아마 구글에 찾아보면 대부분 스크롤의 끝은 찾는 코드들이 나와는 조금 다르게 Math.round 함수가 빠져있을 것이다.
내가 이 Math.round를 왜 해주었나!
( Math.round : 반올림 해주는 함수 )
처음 구글의 코드를 가져와 실행했을 때 나는 이상한 현상이 하나 생겼었다.
전체화면일때 스크롤의 마지막이 확인이 안됐다.
창을 조금 줄이면 다시 alert창이 떴고, 창을 또 다시 조금 줄이면 alert창이 안떴다.
왜?
왜 어떤 경우에는 스크롤의 마지막이 체크되면서 어떤 경우는 안되지?
높이를 고정으로 주었기 때문에 분명 높이가 달라지지 않는데.. 이상했다.
위에 글을 쓰면서 내가 굵은 글씨로 강조한 것들중 반환값이 있었을 것이다. ( 이제 눈치 채셨을지도..ㅎㅎ )
scrollHeight 와 scrollTop 의 반환값이 다르다 보니 정확하지 않아 발생한다고 생각이 들었고
따라서 scrollTop의 값도 높이와 마찬가지로 반올림을 해주었더니 해결되었다 !
막상 설명을 하자니 구구절절 늘어놓기만 한 것 같다. 😅
간단해 보이지만 나는 항상 어렵다..ㅋㅋ 그래도 이렇게 오류를 직접 발견하고 생각해서 고치니 뿌듯한 것 같다 !
같은 현상으로 고민하는 사람들에게 조금이나마 도움이 되었으면 좋겠다.
'~ 2024.08' 카테고리의 다른 글
jQuery 이벤트에 대해 알아보기 😉 (0) | 2018.07.11 |
---|---|
[ jQuery ] 미션 ( 물고기 움직이기 + 랜덤 스타일 적용하기 ) (1) | 2018.07.10 |
JQuery를 공부하기 전 자바스크립트 DOM에 관해 알아보자 ! (3) | 2018.06.04 |
CSS + JQuery(JavaScript) 응용 2편 (1) | 2018.05.27 |
No operations allowed after connection closed 오류 해결 (3) | 2018.05.23 |