[스크립트] 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/기타

번호 제목 글쓴이 날짜 조회수
46 JS 글자수 체크(공백포함, 제외) 및 언어 옵션 설정 관리자 09-02 48
45 web chart - 실시간 차트 관리자 07-25 125
44 비동기 프로그래밍 관리자 07-25 97
43 table thead 고정과 tbody 스크롤 관리자 07-23 135
42 datepicker 사용하여 공휴일 직접 지정하기 관리자 06-11 195
41 Dropzone - 이미지 & 파일 업로드 (드래그 앤 드롭) 라이브러리 관리자 03-06 389
40 JSPDF 사용법(Javascript pdf) 관리자 03-04 538
39 FullCalendar(풀캘린더) 어거지 사용법 관리자 01-25 578
38 JQUERY - id가 여러개인데 한번에 찾고 싶을때! ${} 관리자 12-28 416
37 [CSS] 가로 스크롤 구현하기 관리자 12-27 545
36 JCROP을 이용한 업로드한 크롭( CROP ) 하기 관리자 12-27 488
35 제이쿼리 - 모달 다이아로그 및 여러 알림창들 관리자 12-21 249
34 Javascript/jQuery 이미지 회전 돋보기 관리자 11-07 576
33 Resolving the Issue of Fakepath in JavaScript 관리자 10-26 282
32 div 및 요소 화면 중앙에 위치시키기 관리자 10-21 315
31 [Jquery] 체크박스 전체 체크 , 해제 하는 방법 관리자 10-19 312
30 display 스타일 속성 사용하여 행 숨기기/보이기 관리자 09-16 619
29 자주 사용하는 비주얼 스튜디오 코드(Visual Studio Code, VSC, vscode) 단축키 정리 관리자 09-14 711
28 div 2개 나란히 정렬하는 방법 관리자 09-09 468
27 HTML, CSS - 헤더컬럼 고정형 table 구성하기 관리자 09-06 349