[스크립트] eventSwipe. HTML에서 swipe 이벤트를 사용할 수 있도록 해줍니다.

swipestsart , swipemove , swipeend 라는 이벤트를 사용할 수 있도록 해줍니다.



/**
 * event for swipe
 */
 
(function () {
  if ( typeof window.CustomEvent === "function" ) return false;
  function CustomEvent ( event, params ) {
    params = params || { bubbles: false, cancelable: false, detail: null };
    var evt = document.createEvent( 'CustomEvent' );
    evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
    return evt;
  }
  window.CustomEvent = CustomEvent;
})();
 
const eventSwipe = (function(){
  let eventSwipe = {
    debug:false,
  };
  let pointerState = {
    actived:0,
    x:null,
    y:null,
    swipeStartTarget:null,
  }
  let pointerdown = function(evt){
    pointerState.actived=1;
    pointerState.x=evt.clientX;
    pointerState.y=evt.clientY;
    pointerState.swipeStartTarget=evt.target;
    let eventData = {
      deltaX:0,
      deltaY:0,
      swipeStartTarget:pointerState.swipeStartTarget,
    };
    evt.target.dispatchEvent(new CustomEvent('swipestart', { bubbles: true, cancelable: true, detail: eventData }));
    if(eventSwipe.debug){ console.log(evt); }
  };
  let pointermove = function(evt){
    if(!pointerState.actived){return}
    let eventData = {
      deltaX:evt.clientX-pointerState.x,
      deltaY:evt.clientY-pointerState.y,
      swipeStartTarget:pointerState.swipeStartTarget,
    };
    evt.target.dispatchEvent(new CustomEvent('swipemove', { bubbles: true, cancelable: true, detail: eventData }));
    if(eventSwipe.debug){ console.log(evt); }
  };
  let pointerup = function(evt){
    if(!pointerState.actived){return}
    let eventData = {
      deltaX:evt.clientX-pointerState.x,
      deltaY:evt.clientY-pointerState.y,
      swipeStartTarget:pointerState.swipeStartTarget,
    };
    evt.target.dispatchEvent(new CustomEvent('swipeend', { bubbles: true, cancelable: true, detail: eventData }));
    pointerState.actived=false;
    pointerState.x=null;
    pointerState.y=null;
    pointerState.swipeStartTarget=null;
    if(eventSwipe.debug){ console.log(evt); }
  };
  document.addEventListener('pointerdown',pointerdown,false)
  document.addEventListener('pointermove',pointermove,false)
  document.addEventListener('pointerup',pointerup,false)
 
  return eventSwipe;
})()
0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

HTML/CSS/기타

번호 제목 글쓴이 날짜 조회수
29 자주 사용하는 비주얼 스튜디오 코드(Visual Studio Code, VSC, vscode) 단축키 정리 관리자 09-14 5,342
28 div 2개 나란히 정렬하는 방법 관리자 09-09 4,921
27 HTML, CSS - 헤더컬럼 고정형 table 구성하기 관리자 09-06 4,476
26 Drag and Drop File Upload 관리자 09-03 3,063
25 rowspan으로 합친 table에서 룰오버 관리자 08-23 2,562
24 스마트에디터 입력 용량 체크 관리자 07-06 1,944
23 자바스크립트 정규표현식 모음 관리자 07-03 1,231
22 [Javascript] 쓰레드(웹 워커-Web worker)를 사용하는 방법 관리자 04-13 1,101
21 구글 차트 관리자 04-12 1,653
20 Camera API 관리자 04-07 832
19 전화번호 자동 정규식 처리 관리자 04-06 882
18 picocss 관리자 04-03 829
17 CSS 폰트 적용하기 관리자 03-15 731
16 JQuery html2canvas div 이미지 저장 (div 영역 이미지 캡쳐) 관리자 03-15 2,442
15 [#. CSS] 이미지 위에 텍스트, 글자 올리기 text on image 관리자 03-15 2,509
14 다음 지도 api 주소을 좌표 구하고 여러개 마커 제어하기 관리자 03-08 1,119
13 jquery upload 관리자 02-27 667
12 QR코드 활용에 관하여… 관리자 02-08 897
11 비밀번호 정규식 모음 관리자 11-21 808
10 JQuery 노드찾기 관리자 11-12 822