728x90
반응형
서비스를 개발하다보면 약관동의 같은 페이지를 개발할때가 있다. 약관은 내용이 많기 때문에 스크롤이 생기게 되는데 이럴때 removeEventListener 이벤트를 통해서 스크롤을 체크해볼수 있다.
🌱 scrollTop : 스크롤바 내린 높이
🌱 scrollHeight : div 태그 실제 높이
🌱 clientHeight : 눈으로 확인되는 div 박스 높이
🌱 실제 높이 : 스크롤 내린높이(scrollTop) + 눈으로 확인되는 div 박스 높이(clientHeight)
🌱 $div.scrollHeight = $div.scrollTop + $div.clientHeight
통상적으로 -5를 지정해서 스크롤 끝에서 5px정도 왔을때 체크를 하는것이 오차를 감안할수 있다.
🌱스크롤 감지 이벤트
$("body").on("mousewheel", function (e) {
var wheel = e.originalEvent.wheelDelta;
if (wheel > 0) {
//스크롤 올릴때
console.log("올리는 중");
} else {
//스크롤 내릴때
console.log("내리는 중");
}
});
🌱스크롤 이벤트
let infoConrim = document.querySelector("#info_container");
const checkEvent = () => {
infoConrim.addEventListener('scroll', function () {
if (infoConrim.clientHeight + infoConrim.scrollTop >= infoConrim.scrollHeight - 5) {
alert('약관을 다 읽으셨습니다');
document.querySelector(".button_area").style.display="";
infoConrim.removeEventListener('scroll', arguments.callee);
}
});
}
//arguments.callee는 익명함수 자체를 가리킨다고 한다.
728x90
반응형
'💚04_HTML5 & Javascript & CSS > 01_Javascript' 카테고리의 다른 글
#javascript #script태그 #페이지로딩속도 #async/defer 어트리뷰트 #sciprt태그위치는? (0) | 2024.07.16 |
---|---|
#var #let #const #변수 #차이점 #ES6 #스코프 #호이스팅 (0) | 2024.02.22 |
#javascript #함수 #filter #find #구분 (0) | 2023.11.16 |
#window. #window.location #reload #페이지이동 (0) | 2023.11.07 |
#JavaScript #날짜계산 #getFullYear() #getMonth() #getDate() #getDay() (0) | 2023.10.04 |
댓글