스크롤 이벤트 질문입니다. 채택완료

Copy
$(window).scroll(function() {  

var f = true;

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개

채택된 답변
+20 포인트

Copy
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;
        }
    }
});

이렇게 한번 해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

됐어요! 감사합니다.
해봤는데 안되길래 봤더니
여러개가 있을때는 var f = true; 요거를 개별로 따로 줬어야 했었군요 'ㅁ'....
만세 /'ㅁ'/

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고