본문 바로가기

web/jQuery

파이어폭스 / IE 에서 scoll 이벤트가 안될때



jquery scoll 기능을 파이어폭스 작동이 안되는것을  인터넷에서 찾아보면 버그라고 나오면서

(정확히는 파이어폭스에서 scoll이벤트가 먹는 경우는 스크롤이 있을 경우에만 먹는 괴현상이 있습니다. onepage 같은 스크립트를 쓸때 스크롤이 없으니 scoll 이벤트가 않먹더군요. 만일 최신 것을 쓴다면 위와 같은 버그를 미리 스크립트로 방지했는지 확인하시고 쓰기 바랍니다.)


파이어폭스에서만 지원하는 함수인 "DOMMouseScoll" 를 사용하라고 하지만 작동하지 않았다. (저에게만 해당하는 사항일수도 있습니다.)


반면 아직 파이어폭스는 지원하지 안흔다는 "mousewheel" 가 작동을 하더군요. (이게 무슨.....)

해당 이벤트에서 event.originalEvent 객체를 보면 X/Y의 휠 이동값을 가져올수 있습니다. 


다음은 대략적인 예제입니다. 

$(document).on( 'DOMMouseScroll mousewheel', function ( event ) {
if(event.originalEvent.deltaY > 0) {

console.log("up");
return false;
}
if(event.originalEvent.deltaY < 0) {

console.log("down");
return false;
}
return false;
});


혹시 외부 js를 쓸때 스크롤을 지원하지 않는 스크립트였다면 위의 소스로 이벤트를 잡아줘서 구현해주면 됩니다.