스크롤 이벤트 재질문입니다.
본문
var f = true;
$(window).scroll(function() {
if($(document).scrollTop() > 99 && $(document).scrollTop() < 500) {
if(f == true) {
$('html').addClass('over_h');
setTimeout(function() {
$('html').removeClass('over_h');
}, 2000);
f = false;
}
}
});
먼저 드렸던 질문
-----------
페이지에서 스크롤을 하다가 특정 구역에 도착했을 때 over_h(overflow:hidden을 걸어둔 클래스)를 추가한 후 일정 시간이 지난 후에 사라지게 하고 싶어서 제작한 부분입니다.
다른 부분들은 스크롤시 한번만 진행이 되는데 셋타임 부분은 스크롤 할때마다
over_h를 나타나게 했다가 사라지는 부분이 반복 실행되는데 한번만 실행되게 할 수 없을까요?
-----------
위의 질문을 드려서 다른분의 도움을 받아 위 코드로 넣어서 스크롤을 한번 내릴 때에는 성공을 하였으나
스크롤을 내렸다가 다시 그 구간에 들어서면 기능이 동작하지 않습니다.
새로고침 하기 전 까지 한번만 동작하고 끝나는 것 같은데 구간에 들어설 때마다 1번만 동작하게 하려면 어떻게 해야할까요?!...
!-->답변 1
내용 이해가 어려운데.. 이해가 안 된 상태에서.. 혹시나 해서 제가 생각해 본 코드입니다.
var f = true;
$(window).scroll(function() {
if($(document).scrollTop() > 99 && $(document).scrollTop() < 500) {
if(f == true) {
$('html').addClass('over_h');
setTimeout(function() {
$('html').removeClass('over_h');
}, 2000);
f = false;
}
} else {
f = true;
}
});