Сортировка в интерфейсах с функцией drag-and-drop работает за счёт перетаскивания элементов внутри контейнера. habr.com telegra.ph
Есть несколько сценариев работы такой сортировки: habr.com telegra.ph
- Изменение порядка элементов в одном измерении. habr.com telegra.ph Перемещение происходит внутри одного контейнера и доступно только в пределах одного измерения: вверх-вниз или влево-вправо. habr.com telegra.ph Пример такого сценария — сортировка списка, вертикального или горизонтального. habr.com telegra.ph
- Изменение порядка элементов в двух измерениях. habr.com telegra.ph Такой сценарий похож на предыдущий, но осуществляется сразу в двух измерениях. habr.com telegra.ph Пример — визуальное построение интерфейса из готовых виджетов, выстроенных по заранее заданной или свободной сетке (гриду). habr.com telegra.ph
- Изменение отношений между элементами. telegra.ph В этом сценарии жёстко ограничено то, куда можно переместить элемент, так как его позиция должна быть встроена в некую структуру отношений между всеми элементами. telegra.ph При перемещении элементов перестраиваются связи между ними внутри этой структуры. telegra.ph
Для перемещения объектов иногда используют элемент-индикатор. habr.com telegra.ph Тогда в изначальной позиции останется копия исходного элемента, а сам элемент будет перемещён в то место, на которое будет указывать индикатор. telegra.ph
Для управления мышью или тачпадом операция перетаскивания состоит из нескольких этапов: habr.com
- Найти объект на экране. habr.com
- Навести курсор на элемент. habr.com
- Зажать кнопку мыши или тачпад. habr.com
- Найти целевой объект для сброса. habr.com
- Перетащить элемент на нужный объект. habr.com
- Отпустить кнопку или тачпад. habr.com
Для сенсорных экранов нужно: habr.com
- Найти объект на экране. habr.com
- Зажать его пальцем. habr.com
- Подождать отклика от устройства. habr.com
- Найти целевой объект для сброса. habr.com
- Перетащить пальцем элемент на нужный объект. habr.com
- Убрать палец с элемента. habr.com