[JQUERY] jQuery를 마우스 휠 이벤트를 받기?
JQUERYjQuery를 마우스 휠 이벤트를 받기?
해결법
-
1.지역에 걸쳐 마우스 휠과 속도 UP / DOWN 감지하는 플러그인이있다.
지역에 걸쳐 마우스 휠과 속도 UP / DOWN 감지하는 플러그인이있다.
-
2.
$(document).ready(function(){ $('#foo').bind('mousewheel', function(e){ if(e.originalEvent.wheelDelta /120 > 0) { console.log('scrolling up !'); } else{ console.log('scrolling down !'); } }); });
-
3.모두 마우스 휠에 바인딩 및 DOMMouseScroll 나를 위해 정말 잘 작동 결국 :
모두 마우스 휠에 바인딩 및 DOMMouseScroll 나를 위해 정말 잘 작동 결국 :
$(window).bind('mousewheel DOMMouseScroll', function(event){ if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) { // scroll up } else { // scroll down } });
이 방법은 IE9 +, 크롬 33, 파이어 폭스 (27)에서 일하고있다.
편집 - 2016년 3월
나는 그것이 오랜만이기 때문에이 문제를 다시 방문하기로 결정했다. 스크롤 이벤트에 대한 MDN 페이지 내 이전의 검출 방법에 매우 바람직하다 차종이 requestAnimationFrame의 사용을 스크롤 위치를 검색하는 좋은 방법이있다. 나는 스크롤 방향과 위치뿐만 아니라 더 나은 호환성을 제공하기 위해 자신의 코드를 수정 :
(함수() { VAR supportOffset = window.pageYOffset은! ==, 정의되지 않은 lastKnownPos = 0, 똑딱 = 거짓, scrollDir, currYPos; 함수 해봐요 (scrollPos, scrollDir) { // 코드는 여기 간다 ... 을 console.log ( '스크롤 POS :'+ scrollPos + '| 스크롤 디렉토리 :'+ scrollDir); } window.addEventListener ( '휠', 기능 (E) { currYPos = supportOffset? window.pageYOffset : document.body.scrollTop; scrollDir = lastKnownPos> currYPos? '위아래'; lastKnownPos = currYPos; 만약 (! 똑딱) { window.requestAnimationFrame (함수 () { 해봐요 (lastKnownPos, scrollDir); 틱 = 거짓; }); } = 사실 똑딱; }); }) ();
-
4.2017 년 지금, 당신은 쓸 수 있습니다
2017 년 지금, 당신은 쓸 수 있습니다
$(window).on('wheel', function(event){ // deltaY obviously records vertical scroll, deltaX and deltaZ exist too if(event.originalEvent.deltaY < 0){ // wheeled up } else { // wheeled down } });
현재 파이어 폭스 (51), 크롬 (56), IE9 +와 함께 작동
-
5."마우스 휠"이벤트에 대해 이야기 답변이되지 않는 경우를 참조한다. 표준 이벤트는 단순히 "바퀴"입니다. https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel 참조
"마우스 휠"이벤트에 대해 이야기 답변이되지 않는 경우를 참조한다. 표준 이벤트는 단순히 "바퀴"입니다. https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel 참조
-
6.이것은 나를 위해 일한 :)
이것은 나를 위해 일한 :)
//Firefox $('#elem').bind('DOMMouseScroll', function(e){ if(e.originalEvent.detail > 0) { //scroll down console.log('Down'); }else { //scroll up console.log('Up'); } //prevent page fom scrolling return false; }); //IE, Opera, Safari $('#elem').bind('mousewheel', function(e){ if(e.originalEvent.wheelDelta < 0) { //scroll down console.log('Down'); }else { //scroll up console.log('Up'); } //prevent page fom scrolling return false; });
유래에서
-
7.여기 바닐라 용액이다. 이벤트가 함수에 전달하면 jQuery를에 사용할 수 있습니다 것은 jQuery를이 jQuery를 이벤트의 속성으로 사용 가능하게 event.originalEvent입니다. 또는 콜백 함수 내부의 경우, 우리는 첫 번째 라인 전에 추가 아래 : 이벤트 = event.originalEvent ;.
여기 바닐라 용액이다. 이벤트가 함수에 전달하면 jQuery를에 사용할 수 있습니다 것은 jQuery를이 jQuery를 이벤트의 속성으로 사용 가능하게 event.originalEvent입니다. 또는 콜백 함수 내부의 경우, 우리는 첫 번째 라인 전에 추가 아래 : 이벤트 = event.originalEvent ;.
이 코드는 휠 속도 / 양을 정상화하고 뒤로 마우스 휠의 움직임에 앞으로 일반 마우스의 스크롤 및 음수가 될 것입니다 무엇에 대한 긍정적이다.
var wheel = document.getElementById('wheel'); function report(ammout) { wheel.innerHTML = 'wheel ammout: ' + ammout; } function callback(event) { var normalized; if (event.wheelDelta) { normalized = (event.wheelDelta % 120 - 0) == -0 ? event.wheelDelta / 120 : event.wheelDelta / 12; } else { var rawAmmount = event.deltaY ? event.deltaY : event.detail; normalized = -(rawAmmount % 3 ? rawAmmount * 10 : rawAmmount / 3); } report(normalized); } var event = 'onwheel' in document ? 'wheel' : 'onmousewheel' in document ? 'mousewheel' : 'DOMMouseScroll'; window.addEventListener(event, callback);
코드와 몇 가지 여분의 설탕에서 더 자세한입니다 jQuery를위한 플러그인도있다 : https://github.com/brandonaaron/jquery-mousewheel
-
8.이것은 각 IE, 파이어 폭스와 크롬의 최신 버전에서 일하고있다.
이것은 각 IE, 파이어 폭스와 크롬의 최신 버전에서 일하고있다.
$(document).ready(function(){ $('#whole').bind('DOMMouseScroll mousewheel', function(e){ if(e.originalEvent.wheelDelta > 0 || e.originalEvent.detail < 0) { alert("up"); } else{ alert("down"); } }); });
-
9.나는이 코드는 나를 위해 잘 작동되는 오늘이 문제에 갇혀 발견되었다
나는이 코드는 나를 위해 잘 작동되는 오늘이 문제에 갇혀 발견되었다
$('#content').on('mousewheel', function(event) { //console.log(event.deltaX, event.deltaY, event.deltaFactor); if(event.deltaY > 0) { console.log('scroll up'); } else { console.log('scroll down'); } });
-
10.이 코드를 사용
이 코드를 사용
knob.bind('mousewheel', function(e){ if(e.originalEvent.wheelDelta < 0) { moveKnob('down'); } else { moveKnob('up'); } return false; });
-
11.내 조합은 다음과 같습니다. 이 페이드 아웃 각 스크롤 업 / 다운에 페이드. 그렇지 않으면 당신의 헤더를 페이딩, 헤더에 스크롤해야합니다.
내 조합은 다음과 같습니다. 이 페이드 아웃 각 스크롤 업 / 다운에 페이드. 그렇지 않으면 당신의 헤더를 페이딩, 헤더에 스크롤해야합니다.
var header = $("#header"); $('#content-container').bind('mousewheel', function(e){ if(e.originalEvent.wheelDelta > 0) { if (header.data('faded')) { header.data('faded', 0).stop(true).fadeTo(800, 1); } } else{ if (!header.data('faded')) header.data('faded', 1).stop(true).fadeTo(800, 0); } });
위의 하나는 터치에 최적화되지 않은 / 모바일, 나는이 하나가 더 나은 모든 모바일을 수행 생각 :
var iScrollPos = 0; var header = $("#header"); $('#content-container').scroll(function () { var iCurScrollPos = $(this).scrollTop(); if (iCurScrollPos > iScrollPos) { if (!header.data('faded')) header.data('faded', 1).stop(true).fadeTo(800, 0); } else { //Scrolling Up if (header.data('faded')) { header.data('faded', 0).stop(true).fadeTo(800, 1); } } iScrollPos = iCurScrollPos; });
-
12.@DarinDimitrov이, JQuery와 - 마우스 휠을 게시하는 플러그인은 jQuery를 3+로 나뉩니다. jQuery를 3+와 함께 작동 JQuery와 휠을 사용하는 것이 더 바람직 할 것이다.
@DarinDimitrov이, JQuery와 - 마우스 휠을 게시하는 플러그인은 jQuery를 3+로 나뉩니다. jQuery를 3+와 함께 작동 JQuery와 휠을 사용하는 것이 더 바람직 할 것이다.
당신이 jQuery를 경로를 가고 싶어하지 않는 경우, MDN이 높은이 많은 장소에서 비표준 지원되지 않는의로 마우스 휠 이벤트를 사용주의. 대신 당신이 이상 정확히 값이 평균 얻고있는 것을 훨씬 더 특이성을 얻을 당신이 휠 이벤트를 사용한다는 것을 말한다. 그것은 대부분의 주요 브라우저에서 지원합니다.
-
13.언급 사용하는 경우 JQuery와 마우스 휠 플러그인 후 어떤 이벤트 핸들러 함수의 두 번째 인수를 사용하는 방법에 대한 - 델타 :
언급 사용하는 경우 JQuery와 마우스 휠 플러그인 후 어떤 이벤트 핸들러 함수의 두 번째 인수를 사용하는 방법에 대한 - 델타 :
$('#my-element').on('mousewheel', function(event, delta) { if(delta > 0) { console.log('scroll up'); } else { console.log('scroll down'); } });
-
14.나는 최근에 어디에서 같은 문제를 가지고 $ (창) .mousewheel는 undefined를 반환합니다되었다
나는 최근에 어디에서 같은 문제를 가지고 $ (창) .mousewheel는 undefined를 반환합니다되었다
내가 한 일은 $ (창) CSTE 연구진 ( '마우스 휠', 기능 () {})이었다;
또한 내가 사용하고이를 처리하기 :
function (event) { var direction = null, key; if (event.type === 'mousewheel') { if (yourFunctionForGetMouseWheelDirection(event) > 0) { direction = 'up'; } else { direction = 'down'; } } }
from https://stackoverflow.com/questions/8189840/get-mouse-wheel-events-in-jquery by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 어떻게 자바 스크립트 또는 jQuery를하는 대신에 액세스 PHP 변수에 <? PHP는 에코 $ 변수?> [중복] (0) | 2020.10.04 |
---|---|
[JQUERY] "이"jQuery를 무엇을 의미합니까? [복제] (0) | 2020.10.04 |
[JQUERY] JQuery와 선택기에서 DOM 요소를 얻는 방법 (0) | 2020.10.04 |
[JQUERY] 수 여러 $ (문서) .ready가 (함수 () {...}); 섹션? (0) | 2020.10.04 |
[JQUERY] 64 기수로 변환 BLOB (0) | 2020.10.04 |