0

그래서 시차 스크롤을 사용하는 페이지를 만들었습니다. 시차는 크롬과 파이어 폭스에서 원활하게 작동하지만 IE에서는 더듬 거리기 시작했습니다. 그래서 나는 (그에서 검색 좀 의미)이 이 가장자리에 고정하는 것이 스크립트와 IE11에서 wheelDelta 사용

if(navigator.userAgent.match(/(?:\b(MS)?IE\s+|\bTrident\/7\.0;.*\s+rv:|\bEdge\/)(\d+)/)) { jQuery('body').on("mousewheel", function() { // remove default behavior event.preventDefault(); //scroll without smoothing var wheelDelta = event.wheelDelta; var currentScrollPosition = window.pageYOffset; window.scrollTo(0, currentScrollPosition - wheelDelta); }); } 

IE10

했다 그러나 그것은 완전히 IE11에 스크롤 끊었다. IE10과 Edge에서는 작동하지만 IE11에서는 작동하지 않는 것이 이상합니다.

누구든지 그 문제에 대한 해결책을 알고 있습니까? addeventlistener가 도움이 될 것이라고 상상하지만, 제대로 구현하지 못했습니다.

정말 도움이 되겠습니까 !!

편집 : EDGE에서 확대/축소도 너무 큽니다. 그게 불가피한가요?

+0

'mousewheel'이되지 않습니다, 사용'wheel' 대신, 모든 최신 브라우저에서뿐만 아니라, IE11 및 Edge에서 작동합니다. 특히 Edge의 경우 브라우저 탐지를 잊어 버리십시오. 피쳐를 감지하고 '휠'이 지원되지 않는 경우에만 '마우스 휠'로 되돌아갑니다. – Teemu

+0

@Temem 'wheel'을 사용하면 아무것도 변경되지 않습니다. 또한 나는 브라우저 탐지가 최상의 해결책이 아니라는 것을 안다. 그러나 그것이 크롬과 파이어 폭스에서 완벽하게 작동 할 때 나는 탐지해야 할 기능이 무엇인지 알 수있다. – raulicious

+0

?? 가짜 :'if (window.wheel) {/ * 첨부 휠 * /} else {/ * 첨부 휠 마우스 * /}'. – Teemu

답변

0

나는 동일한 문제가 있었는데 이벤트 리스너 "휠"을 사용하여이 문제를 해결했습니다. 도움이되기를 바랍니다.

if (evt.type == "wheel") { 
     // delta or detail from event 
     var delta = evt.wheelDelta ? evt.wheelDelta/10 : evt.originalEvent.detail || evt.originalEvent.deltaY)/3; 
     // if Firefox 
     var fireFoxAgent = navigator.userAgent.match(/Firefox/i) != null; 
     // if IE 
     var ieUserAgent = navigator.userAgent.match(/Trident.*rv\:11\./) != null; 

     if (fireFoxAgent) { 
      this.transY -= -40 * delta;     
     } 
     else if(ieUserAgent) 
     { 
      this.transY -= -delta; 
     } 
     else 
     { 
      this.transY -= delta; 
     } 

     if (this.transY > this.minY) { 
      //down 
      this.transY = this.minY; 
     } 
     if (this.transY < this.maxY) { 
      //up 
      this.transY = this.maxY; 
     } 


    } 
    evt.preventDefault(); 

내가 jQuery를

통해이라고
 $('#scroll-content').bind("wheel", function(event) { 
      scrollAreas[0].handleEvent(event); 
     });