2014-09-12 4 views
1

안녕하세요, 저는 처음에는 스크롤 방향을 위/아래로 감지하고 다른 기능 (자동 스크롤)을 시작하는 2 가지 기능이 있습니다. 호출 후 .scroll() 함수를 강제 종료하는 방법? 지금은 ... 무한 루프처럼스크롤 이벤트를 중지하는 방법

var pageScroll = function(){ 

    var iScrollPos = 0; 

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

     var iCurScrollPos = $(this).scrollTop(); 

      if (iCurScrollPos > iScrollPos) { 

       App.scrollto((currentPage+1)); 

      } else { 

       App.scrollto((currentPage-1)); 

      } 

     iScrollPos = iCurScrollPos; 

    }); 

} 

및 호출되는 함수

scrollto: function(page){ 

     var section_offset = $('section[data-page="'+page+'"]').offset().top; 

     $('html, body').animate({ scrollTop: section_offset }, 'slow',function(){ 

      $('html, body').stop(); 
      currentPage = page; 
      console.log(currentPage); 

     }); 

    } 

및 콘솔 로그 화면의 모습입니다 http://prntscr.com/4m493q 당신은 사용자 정의의 끝에서 return false에 시도 할 수

답변

-1

(무한 루프) 스크롤 기능을 사용하거나 사용자 정의 스크롤 기능을 호출하기 전에 preventDefault()으로 전화하십시오.

-1

스크롤 콜백 핸들러에서 e으로 정의한 매개 변수는 event 개체입니다.

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

JQuery와에 대한 모든 이벤트는 그 Jquery Docs에 따라, preventDefault()라는 방법이 있습니다

설명 :이 메소드가 불려 경우, 이벤트의 기본 동작이 트리거되지 않습니다.

그래서,이 메서드를 호출하면 스크롤의 창문을 유지합니다 : 코드의이 비트는 브라우저의 수에 나를 위해 일한

$(window).scroll(function(e){ 
    e.preventDefault(); 
+0

이미로 preventDefault() 함수 나에 대한 해달라고 작업을 tryit ... – feesar

1

.

$(function() { 
 
    var scrollTop = $(window).scrollTop(); 
 
    $(window).scroll(function() { 
 
     // this bit stops the page from being scrolled 
 
     if (* * * insert check * * *) 
 
     $(window).scrollTop(scrollTop); 
 

 
     // update the new y value 
 
     scrollTop = $(window).scrollTop(); 
 
    ) 
 
    }; 
 
});

관련 문제