jQuery 마우스 휠 플러그인을 사용하여 왼쪽 및 오른쪽 바퀴 끈마다 다른 동작을 시작합니다.왼쪽 바퀴와 오른쪽 바퀴 회전을위한 수평 마우스 휠 이벤트
Apple Magic Mouse 가로 휠 스크롤은 두 손가락을 사용하여 페이지를 왼쪽 및 오른쪽으로 스크롤하는 대부분의 랩톱 트랙 패드와 동일한 효과를냅니다.
왼쪽 및 오른쪽 스크롤 동작으로 기록에서 앞 뒤로 이동합니다. 이것은 모든 주요 브라우저 (Safari, Chrome, Opera 및 Firefox)에서 발생합니다.
그래서 나는 preventDefault
스크롤을 가로 (deltaX) 스크롤 할 때만 스크롤해야합니다.
세로 가로 회전을 사용 중지 할 수 없으며 세로 회전을 사용 중지 할 수 없습니다.
여기에 문제를 재현하는 피들이 있습니다. 제발, 액세스하고 수평 마우스 휠 또는 트랙 패드 수평 스크롤을 터뜨립니다.
$(document).mousewheel(function(event, delta, deltaX, deltaY) {
if (deltaX > 10){
$(".square").addClass("animation");
}else if(deltaX < -10){
$(".square").removeClass("animation");
}
if (deltaY != 0){
//Anything that makes vertical wheelscroll keeps normal
}
// I have to preventDefault only the horizontal scroll, otherwise page will go back or go forward in history
event.preventDefault();
});
http://jsfiddle.net/YfwXw/ 당신은 내가 당신이 내 문제를 더 잘 이해하는 데 도움이 코드 내부에 몇 가지 의견을 넣어 볼 수 있습니다.
기본적으로 내가 필요한 것은 preventDefault
수평 바퀴 동작과 기본 수직 휠을 유지하는 것입니다.
30 시간 이상 해결 방법을 찾지 못해 어떤 도움을 주셔서 감사 드리며 이제는 옵션이 없습니다.
니클라스 니 그렌 (Nicklas Nygren)의 대답을 바탕으로 한 해결책으로 새로운 피들.
if (deltaY == 0){
event.preventDefault();
}
이렇게하면 나를 어리 석게 만들었습니다. 하하. 귀하의 답변 주셔서 감사합니다, 완벽하게 작동, 나는 내 요구에 맞게 약간의 변화를했습니다. 'if (deltaY == 0) {event.preventDefault(); }'다시 한번 감사드립니다. 내 초급 명성 때문에 upvote 수는 없지만 정답으로 받아 들일 수 있습니다. – Strobel