테스트 사이트 - 개발 중인 베타 버전입니다

swipe event

· 8년 전 · 2220
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>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
1236
jQuery Mobile taphold event
1235
jQuery Mobile tap event
1234
jQuery Mobile swiperight event
1233
jQuery Mobile swipeleft event
1232
1231
jQuery Mobile scrollstop event
1230
jQuery Mobile scrollstart event
1229
jQuery Mobile pageshow event
1228
jQuery Mobile pageremove event
1227
1226
1225
1224
1223
1222
1221
1220
1219
1218
1217
1216
1215
1214
1213
1212
1211
1210
1209
1208
1207