2013-08-22 2 views

답변

0

문서 스크롤시 처리기를 바인딩하고 e.preventDefault()를 호출하여 기본 스크롤 동작을 방지 할 수 있습니다.

여기에서 contentPos는 스크롤을 중지하려는 y 위치 (픽셀 단위)이며 $ (document) .scrollTop()과 비교됩니다. 조건이 충족 될 때까지 해당 작업을 우선합니다, 당신의 conditionMet이 false 인 경우

$(document). 
    bind('mousewheel DOMMouseScroll', function (e) { 

     contentYPos = 500; 
     conditionMet = false; 

     if ($(document).scrollTop() >= contentYPos 
      && conditionMet == false 
      && e.originalEvent.wheelDelta < 0) { 

       e.preventDefault(); 
     } 
    }); 

확인되며, 사용자가 아래로 스크롤하면 (아마도 당신은 윈도우가 여전히 스크롤 할 수 있어야합니다). http://jsfiddle.net/cMKh2/

편집 : 윈도우 스크롤에 발사보다 포괄적 인 버전을 포함 여기에

이 작업을 보여주는 JS 바이올린입니다. (비교를 위해 두 방법 모두 포함).

http://jsfiddle.net/cMKh2/2/

Edit2가 : 조건 최종 버전은 버튼 누름 및 동적 스크롤 거리로 변경.

http://jsfiddle.net/cMKh2/4/

+0

이 그것을 중지해야하는 위치에 도달 할 때까지의 길이를 알고 가정에있다. 내 계획은 기사에 이것을 구현 한 다음 스크롤을 통해 컨테이너를보고 나면 멈 춥니 다. 또한 else 문이있을 때 어떻게 작동 하나 조건이 충족되면 처리 할 수 ​​있습니까? – ralph

+0

contentYPos를 $ ("# element") .offset(). top으로 바꾸면 동적으로 중지됩니다. 다음은 원하는 것을 보여주는 바이올린입니다. 버튼을 클릭 할 때까지 파란색 요소에서 스크롤을 멈추고 conditionMet 변수를 true로 변경합니다. 이렇게하면 스크롤이 잠기는 것을 방지 할 수 있습니다. 바라기를 이것은 당신이 원하는 것이어야합니다! http://jsfiddle.net/cMKh2/4/ –

+0

음 ... 이것은 내가 원하는 것에 가깝습니다. 하지만 한 가지 더, 진행하기 전에 스크롤링을 계산할 수 있습니까? 클릭 이벤트와 반대되는 스크롤 이벤트를 감지 할 계획입니다. – ralph

관련 문제