2016-10-19 2 views
1

왜 비활성화 기능이 작동하지 않습니까?왜 스크롤 애니메이션이 비활성화되어 있지 않습니까?

stop() 기능이 없으면 잘 작동하지만 애니메이션이 400에서 지연되고 stop()으로 스크롤이 비활성화되지 않습니다.

휠을 빨리 스크롤하면 애니메이션이 멈추고 휠을 멈 추면 애니메이션이 시작됩니다. 여기

http://web.100mb.ro/tutti/

$("#section-five").bind('mousewheel', function(event) { 
    if (event.originalEvent.wheelDelta <= 0) { 

    } 
    else { 
     disable_scroll(); 
     $('html, body').stop().animate({ 
      scrollTop: $("#section-four").offset().top 
     }, 400,'swing',function(){ 
      enable_scroll(); 
     }); 
    } 
}); 


var keys = [37, 38, 39, 40]; 

function preventDefault(e) { 
    e = e || window.eevnt; 
    if (e.preventDefault) 
     e.preventDefault(); 
    e.returnValue = false; 
} 

function keydown(e) { 
    for (var i = keys.length; i--;) { 
     if (e.keyCode === keys[i]) { 
      preventDefault(e); 
      return; 
     } 
    } 
} 

function wheel(e) { 
    preventDefault(e); 
} 

function disable_scroll() { 
    if (window.addEventListener) { 
     window.addEventListener('DOMMouseScroll', wheel, false); 
    } 
    window.onmousewheel = document.onmousewheel = wheel; 
    document.onkeydown = keydown; 
} 

function enable_scroll() { 
    if (window.removeEventListener) { 
     window.removeEventListener('DOMMouseScroll', wheel, false); 
    } 
    window.onmousewheel = document.onmousewheel = document.onkeydown = null; 
} 
+0

전역 변수'var mouseDisabled = false;'로 플래그를 추가하고,'enable_scroll' 함수 내에서'disable_scroll' 함수와'mouseDisabled = false;'안에'mouseDisabled = true;'를 추가하십시오. 그런 다음 다른 모든 작업을하기 전에 모든 '마우스 휠'의 플래그를 확인하십시오. – GramThanos

+0

그것은 거짓에서 진실로 변화하고 있지만 아무것도 동일하지 않습니다 (나는 콘솔 로그에서 볼 수있는 페이지에서 변경되었습니다) –

답변

0

귀하의 disable_scroll 기능이 enable_scroll 기능을 제거하면서, 스크롤 이벤트 리스너를 추가 할 것으로 보인다 내 페이지의 링크입니다.

관련 문제