스크롤 이벤트 재질문입니다.

스크롤 이벤트 재질문입니다.

QA

스크롤 이벤트 재질문입니다.

본문


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

});

답변을 작성하시기 전에 로그인 해주세요.
전체 2

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT