복붙노트

[JQUERY] 터치의 이동은하는 TouchMove을 취소 할 수 무시 시도를 갇히지

JQUERY

터치의 이동은하는 TouchMove을 취소 할 수 무시 시도를 갇히지

해결법


  1. 1.이 행사는 취소 할 수 있어야합니다. if 문 해결할 수있는 문제이 문제를 추가.

    이 행사는 취소 할 수 있어야합니다. if 문 해결할 수있는 문제이 문제를 추가.

    if (e.cancelable) {
       e.preventDefault();
    }
    

    코드에서 당신은 여기에 넣어해야합니다 :

    if (this.isSwipe(swipeThreshold) && e.cancelable) {
       e.preventDefault();
       e.stopPropagation();
       swiping = true;
    }
    

  2. 2.나는이 문제를했고 내가했던 일은, touchend에서 true를 반환하고 경고가 멀리 갔다.

    나는이 문제를했고 내가했던 일은, touchend에서 true를 반환하고 경고가 멀리 갔다.


  3. 3.나는 이것이 이전 게시물입니다 알고 있지만 나는이 문제를 해결하기 위해 노력하고 문제를 많이했다 내가 공유하기를 원해요 그래서 나는 마침내했다.

    나는 이것이 이전 게시물입니다 알고 있지만 나는이 문제를 해결하기 위해 노력하고 문제를 많이했다 내가 공유하기를 원해요 그래서 나는 마침내했다.

    뭔가를 같이 - 내 문제는 내가 ontouchstart 내에서 이벤트 리스너를 추가하고 ontouchend 기능에서 제거 된 것이 었습니다

    function onTouchStart() {
      window.addEventListener("touchmove", handleTouchMove, {
        passive: false
      });
    }
    
    function onTouchEnd() {
      window.removeEventListener("touchmove", handleTouchMove, {
        passive: true
      });
    }
    
    function handleTouchMove(e) {
      e.preventDefault();
    }
    

    어떤 이유로 무작위로 이벤트의이 문제를 일으키는 취소 할 수없는이 같은를 제거하고 추가. 그래서 내가 활성 리스너를 유지하고 이벤트를 방지해야하는지 여부에 대한 부울 토글 해결하기 - 이런 식으로 뭔가를 :

    let stopScrolling = false;
    
    window.addEventListener("touchmove", handleTouchMove, {
      passive: false
    });
    
    function handleTouchMove(e) {
      if (!stopScrolling) {
        return;
      }
      e.preventDefault();
    }
    
    function onTouchStart() {
      stopScrolling = true;
    }
    
    function onTouchEnd() {
      stopScrolling = false;
    }
    

    나는 실제로 내 솔루션 상태를 설정 포함했다, 그래서 반작용 사용했다,하지만 난 더 일반적인 솔루션을 단순화했습니다. 희망이 누군가가 도움이!


  4. 4.당신이 적극적으로 크롬에서 작동하지 않는 스크롤하는 동안하는 TouchMove에로 preventDefault를 호출. 성능 문제를 방지하기 위해, 당신은 스크롤을 방해 할 수 없다.

    당신이 적극적으로 크롬에서 작동하지 않는 스크롤하는 동안하는 TouchMove에로 preventDefault를 호출. 성능 문제를 방지하기 위해, 당신은 스크롤을 방해 할 수 없다.

    touchstart에서에서 preventDefault ()를 호출하는 것을 시도하고 모든 것을 확인해야한다.


  5. 5.하는 TouchMove의 event.cancelable이 거짓이기 때문에) e.preventDefault을 (제거하십시오. 그래서 당신은이 방법을 호출 할 수 없습니다.

    하는 TouchMove의 event.cancelable이 거짓이기 때문에) e.preventDefault을 (제거하십시오. 그래서 당신은이 방법을 호출 할 수 없습니다.

  6. from https://stackoverflow.com/questions/26478267/touch-move-getting-stuck-ignored-attempt-to-cancel-a-touchmove by cc-by-sa and MIT license