Событие jQuery touchSwipe для элемента предотвращает прокрутку
У меня есть списокdiv
элементы упорядочены по вертикали. С помощьюПлагин jQuery TouchSwipe добавлено событие смахивания, чтобы поймать движение вправо-влево. Идея состояла в том, чтобы удалить элемент из списка, проводя его левой или правой стороной следующим образом:
Наконец я получил что-то вроде этого:
$(function() {
$('.swElement').swipe({
swipeStatus: function(event, phase, direction, distance, duration, fingerCount) {
console.log(distance);
if (phase == "move") {
if (direction == "right") {
$(this).css({
'right' : (distance*-1)+'px'
});
}
} else if (phase == "cancel") {
$(this).css({
'right' : 0
});
} else if (phase == "end") {
$(this).animate({
'right' : '-100%'
}, 200, function() {
$(this).remove();
});
} else {
//?????
}
},
threshold: 150,
maxTimeThreshold: 5000,
fingers: 'all'
});
});
.swElement {
display: block;
width: 100%;
height: 50px;
border: 1px solid black;
box-sizing: border-box;
padding: 0 10px;
line-height: 50px;
cursor: pointer;
position: relative;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://dl.dropboxusercontent.com/u/2130702/cdn/jquery.touchSwipe.min.js"></script>
<h2>Swipe right to remove element</h2>
<div class="swElement">Element</div>
<div class="swElement">Element</div>
<div class="swElement">Element</div>
<div class="swElement">Element</div>
<div class="swElement">Element</div>
проблемаОн отлично работает в браузере мобильного Chrome, но предотвращает прокрутку вверх / вниз в родном браузере Android.
Я понимаю что этоswipeStatus
поймать оба направления влево / вправо и вверх / вниз, но не знаю, как предотвратить это - мне нужно только событие правого удара.
Есть идеи? Заранее спасибо.
ОбновитьЯ не могу использовать мобильную инфраструктуру jQuery, потому что она конфликтует с другими скриптами, которые я должен использовать. Может быть, будет еще один способ выяснить?