Я надеялся предотвратить перетаскивание во время вертикального сенсорного взаимодействия, но метод перетаскивания пользовательского интерфейса все равно срабатывает и переопределяет событие касания. Я использую плагин touch-punch, чтобы перетаскивание работало на сенсорных устройствах, так что, возможно, что-то там усложнило ситуацию. Было бы здорово, если бы я мог вообще запретить запуск метода перетаскивания пользовательского интерфейса до тех пор, пока не будет выполнено условие горизонтального перетаскивания. Я думаю, это устранит помехи.
Код: Выделить всё
// note the condition inside the drag function
start: function(e){
// get starting point of the drag
startDragX = e.pageX;
startDragY = e.pageY;
},
drag: function(e, ui){
// prevent drag until user has moved 30px horizontally
if (Math.abs(e.pageX - startDragX) < 30){
ui.position.left = 0;
} else {
if (ui.position.left < 0) {
// left drag
ui.position.left = ui.position.left + 30;
} else {
// right drag
ui.position.left = ui.position.left - 30;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/192 ... ouch-event
Мобильная версия