div 내부에서 끝을 체크한 것과 로직은 비슷하지만 로직을 실행할 대상이 다르다.
div 내부에서는 div를 대상으로 scrollTop, scrollHeight, clientHeight를 구해서 연산을 했지만 브라우저에서는 html 태그를 대상으로 scrollTop, scrollHeight, clientHeight를 구해서 연산을 해야한다.
// div(.lorem) 대상
var scrollAmount = document.querySelector('.lorem').scrollTop;
var scrollRealHeight = document.querySelector('.lorem').scrollHeight;
var divHeight = document.querySelector('.lorem').clientHeight;
// 브라우저 (html) 대상
var scrollAmount = document.querySelector('html').scrollTop;
// 브라우저에서 scrollAmount는 window.scrollY와 같다.
var scrollRealHeight = document.querySelector('html').scrollHeight;
var divHeight = document.querySelector('html').clientHeight;
html태그를 대상으로 무언가를 체크할 경우
웹페이지가 모두 로드가 되었을 경우에 정확히 체크가 가능하다.
따라서 body 태그 제일 하단에서 체크하는 것이 가장 좋다.
window.addEventListener('scroll', function(){
var scrollAmount = document.querySelector('html').scrollTop;
var scrollRealHeight = document.querySelector('html').scrollHeight;
var divHeight = document.querySelector('html').clientHeight;
if (scrollAmount + divHeight == scrollRealHeight) {
alert('웹페이지를 끝까지 스크롤 하셨습니다.')
}
})
'Web > JAVASCRIPT' 카테고리의 다른 글
탭기능 만들며 배우는 for 반복문 (0) | 2023.07.27 |
---|---|
JS 파일을 따로 선언했는데 실행이 되지 않는 경우 (0) | 2023.07.27 |
스크롤 이벤트로 만드는 재밌는 기능들 (0) | 2023.07.25 |
코드 3줄로 캐러셀 (이미지 슬라이드) 만들기 2 (0) | 2023.07.25 |
코드 3줄로 캐러셀 (이미지 슬라이드) 만들기 (0) | 2023.07.24 |