swipe event > 퍼블리싱강좌

퍼블리싱강좌

swipe event 정보

jQuery Mobile swipe event

본문

swipe event
version added: 1.0


설명 : 1 초 동안 30px 이상 (세로로 30px 미만)의 수평 드래그가 발생하면 트리거됩니다.

jQuery( window ).on( "swipe", function( event ) { ... } )

1 초 동안 30px 이상 (수직으로 30px 미만)의 수평 드래그가 발생했을 때 트리거되지만 다음과 같이 구성 할 수 있습니다.

$.event.special.swipe.scrollSupressionThreshold (default: 10px) – 이 수평 이동보다 더 많이 스크롤을 억제합니다.
$.event.special.swipe.durationThreshold (default: 1000ms) – 이보다 더 많은 시간이 걸리며 슬쩍하지 않습니다.
$.event.special.swipe.horizontalDistanceThreshold (default: 30px) – 스 와이프 가로 변위는 이보다 커야합니다.
$.event.special.swipe.verticalDistanceThreshold (default: 30px) – 스 와이프 수직 이동은 이보다 작아야합니다.


스 와이프 이벤트는 자신의 논리 또는 기능을 추가하도록 확장 될 수도 있습니다. 다음 방법을 확장 할 수 있습니다.

1. $.event.special.swipe.start Default:

function( event ) {
  var data = event.originalEvent.touches ?
      event.originalEvent.touches[ 0 ] : event;
  return {
      time: ( new Date() ).getTime(),
      coords: [ data.pageX, data.pageY ],
      origin: $( event.target )
    };
}

2. $.event.special.swipe.stop Default:

function( event ) {
  var data = event.originalEvent.touches ?
      event.originalEvent.touches[ 0 ] : event;
  return {
      time: ( new Date() ).getTime(),
      coords: [ data.pageX, data.pageY ]
    };
}

3. $.event.special.swipe.handleSwipe Default:

function( start, stop ) {
  if ( stop.time - start.time < $.event.special.swipe.durationThreshold &&
    Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.horizontalDistanceThreshold &&
    Math.abs( start.coords[ 1 ] - stop.coords[ 1 ] ) < $.event.special.swipe.verticalDistanceThreshold ) {
 
    start.origin.trigger( "swipe" )
      .trigger( start.coords[0] > stop.coords[ 0 ] ? "swipeleft" : "swiperight" );
  }
}



예:
스 와이프 이벤트 캡처 및 실행에 대한 간단한 예

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>swipe demo</title>
  <link rel="stylesheet" href="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
  <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
  <script src="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
  <style>
  html, body { padding: 0; margin: 0; }
  html, .ui-mobile, .ui-mobile body {
    height: 105px;
  }
  .ui-mobile, .ui-mobile .ui-page {
    min-height: 105px;
  }
  #nav {
    font-size: 200%;
    width:17.1875em;
    margin:17px auto 0 auto;
  }
  #nav a {
    color: #777;
    border: 2px solid #777;
    background-color: #ccc;
    padding: 0.2em 0.6em;
    text-decoration: none;
    float: left;
    margin-right: 0.3em;
  }
  #nav a:hover {
    color: #999;
    border-color: #999;
    background: #eee;
  }
  #nav a.selected,
  #nav a.selected:hover {
    color: #0a0;
    border-color: #0a0;
    background: #afa;
  }
  div.box {
    width: 30em;
    height: 3em;
    background-color: #108040;
  }
  div.box.swipe {
    background-color: #7ACEF4;
  }
  </style>
</head>
<body>
 
<h3>Swipe the green rectangle to change its color:</h3>
<div class="box"></div>
 
<script>
$(function(){
  // Bind the swipeHandler callback function to the swipe event on div.box
  $( "div.box" ).on( "swipe", swipeHandler );
 
  // Callback function references the event target and adds the 'swipe' class to it
  function swipeHandler( event ){
    $( event.target ).addClass( "swipe" );
  }
});
</script>
 
</body>
</html>
추천
1

댓글 0개

전체 283
퍼블리싱강좌 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT