O evento jQuery touchSwipe no elemento impede a rolagem
Eu tenho uma lista dediv
elementos ordenados verticalmente. Usandoplugin jQuery TouchSwipe evento de furto adicionado para capturar o furto da esquerda para a direita. A idéia era remover o elemento da lista deslizando-o para a esquerda ou direita assim:
Finalmente, eu tenho algo parecido com isto:
$(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>
ProblemaEstá funcionando muito bem no navegador Chrome para dispositivos móveis, mas impede a rolagem para cima / para baixo no navegador Android nativo.
Eu entendo que issoswipeStatus
pegue as direções esquerda / direita e para cima / para baixo, mas não sei como evitar isso - só preciso do evento de furto à direita.
Alguma ideia? Desde já, obrigado.
AtualizarNão consigo usar a estrutura móvel do jQuery, porque entra em conflito com outros scripts que tenho que usar. Talvez haja outra maneira de descobrir?