Старая тема, но так как у меня есть некоторый опыт, и это все еще проблема, я попробую ...
Касание и перетаскивание не очень хорошо сочетаются друг с другом.Учтите, что для перетаскивания вы подразумеваете последовательность событий mouse-down => mouse-move => mouse-up.В сенсорной среде у вас есть не только стандартные события touchstart, touchmove и touchend, но и реальные жесты, которые имеют определенные значения на различных платформах.Эти жесты представляют собой комбинации событий касания, их порядка и времени.
Так как бы вы перетащили элемент с помощью касания?Захватить сенсорный запуск и сенсорный ход?Нет. Из-за проблемы с толстым пальцем почти каждое сенсорное событие имеет как сенсорный запуск, так и сенсорное движение.У вас также может быть два сенсорных пуска только с одним сенсорным движением, иногда с грязным экраном.
Как насчет захвата сенсорного пуска и последующего ожидания, если пользователь переместился на определенное расстояние?Нет, проблема в том, что пользователь увидит «сбой», когда он переместит свой палец на 15 пикселей (или на любое другое расстояние), и ничего не произойдет, а затем элемент внезапно зафиксируется в своем положении пальца.Нормальная реакция - поднять палец, что в этом случае может привести к падению, неправильный ответ.
В конце, попытка разработать интерфейс, где некоторые элементы являются стационарными, а другие могут, но не могут.Должно быть, Draggable пытается вписать среду рабочего стола в сенсорное устройство.Парадигмы не подходят.
Лучше смотреть на различные сенсорные рамки и использовать встроенные жесты.