В компьютере графическом интерфейсе пользователя, перетаскивание - это жест указывающего устройства, в котором пользователь выбирает виртуальный объект, «захватывая» его и перетаскивая в другое место или на другой виртуальный объект. В общем, его можно использовать для вызова многих видов действий или создания различных типов ассоциаций между двумя абстрактными объектами.
Как функция, поддержка перетаскивания отсутствует во всех программном обеспечении, хотя иногда это быстрая и легкая в освоении техника. Однако пользователям не всегда ясно, что элемент можно перетащить и отпустить, или какая команда выполняется перетаскиванием, что может снизить удобство использования.
Основная последовательность действий при перетаскивании:
Перетаскивание требует больше физических усилий, чем перемещение того же указывающего устройства без удерживания кнопок. Из-за этого пользователь не может двигаться так быстро и точно при перетаскивании (см. закон Фиттса ). Однако операции перетаскивания имеют то преимущество, что они вдумчиво объединяют два операнда (объект для перетаскивания и место перетаскивания) в одно действие. Длительное перетаскивание (как в графическом дизайне) может утомить мышящую руку.
Проблема дизайна возникает, когда та же кнопка выбирает и перетаскивает элементы. Неточное движение может привести к попытке выбрать объект для регистрации как движение перетаскивания.
Другая проблема заключается в том, что цель падения может быть скрыта под другими объектами. Пользователь должен будет остановить перетаскивание, сделать видимыми и источник, и цель и начать заново. В классической Mac OS строка меню в верхней части экрана служила универсальной целью «отменить перетаскивание». Эта проблема была решена в Mac OS X с введением Exposé.
Перетаскивание, называемое нажмите и перетащите в то время он использовался в оригинальном Macintosh для управления файлами (например, для копирования их между дисками или папками). Система 7 добавила возможность открывать документ в приложении, перетаскивая значок документа на значок приложения.
В Системе 7.5 перетаскивание было расширено до обычных операций с буфером обмена, таких как копирование или перемещение текстового содержимого в документе. Контент также можно было перетащить в файловую систему для создания «файла вырезки», который затем можно было сохранить и использовать повторно.
На протяжении большей части своей истории Mac OS использовала однокнопочную мышь с кнопкой, закрывающей большую часть верхней поверхности мыши. Это может снизить эргономические проблемы, связанные с удержанием кнопки нажатой во время перетаскивания.
Оболочка рабочего места в OS / 2 широко использует перетаскивание с помощью дополнительной кнопки мыши, оставив основной для выбора и щелкнув. Его использование, как и другие расширенные функции Common User Access, отличает собственные приложения OS / 2 от платформенно-независимых портов.
Спецификация рабочего проекта HTML5 включает поддержку перетаскивания. HTML5 поддерживает различные виды функций перетаскивания, включая:
В зависимости от необходимого действия, может быть использован один из вышеперечисленных типов. Обратите внимание: когда элемент HTML перетаскивается для перемещения его текущей позиции, его идентификатор отправляется родительскому элементу назначения; поэтому он отправляет текст и может рассматриваться как первая группа.
Веб-приложение электронной почты Google Gmail поддерживает перетаскивание изображений и вложений в новейшем браузере Google Chrome и Safari <от Apple. 26>(5.х). А поиск картинок Google поддерживает перетаскивание.
Интерфейсы сенсорного экрана также включают перетаскивание, или, точнее, долгое нажатие и затем перетаскивание, например на главных экранах iPhone или Android.
iOS 11 реализует функцию перетаскивания, которая позволяет пользователю касаться элементов (и касаться другими пальцами, чтобы перетащить больше) в приложении или между приложениями на iPad. На iPhone эта функциональность доступна только в том же приложении, в котором пользователь начал перетаскивание.
Перетаскивание считается важным подходом к построению программ во многих разработка для конечных пользователей систем. В отличие от более традиционных языков программирования, основанных на тексте, многие языки программирования для конечных пользователей основаны на визуальных компонентах, таких как плитки или значки, которыми конечные пользователи манипулируют с помощью интерфейсов перетаскивания. AgentSheets, среда программирования для детей, представила современное понятие программирования блоков перетаскивания, предоставляя 4 основных возможности: 1) блоки, которые могут быть составлены конечным пользователем, 2) блоки доступны для редактирования конечным пользователем, 3) блоки могут быть вложенными для представления древовидных структур; 4) блоки расположены геометрически для определения синтаксиса. Перетаскивание также присутствует во многих программах редактирования шейдеров для графических инструментов, таких как Blender. Перетаскивание также поддерживается в некоторых движках видеоигр, включая Unreal Engine, GameMaker Studio, Construct 2 и, с расширением, Unity (игровой движок).
Типичным примером является перетаскивание значка с виртуального рабочего стола на специальный мусорный контейнер значок для удаления файл.
Дополнительные примеры включают: