In computer graphical user interfaces, drag and drop is a pointing
device gesture in which the user selects a virtual object by
"grabbing" it and dragging it to a different location or onto another
virtual object. In general, it can be used to invoke many kinds of
actions, or create various types of associations between two abstract
As a feature, drag-and-drop support is not found in all software,
though it is sometimes a fast and easy-to-learn technique. However, it
is not always clear to users that an item can be dragged and dropped,
or what is the command performed by the drag and drop, which can
2 In Mac OS
3 In OS/2
4 In HTML
5 On a touch screen
6 In end-user programming
8 See also
The basic sequence involved in drag and drop is:
Move the pointer to the object
Press, and hold down, the button on the mouse or other pointing
device, to "grab" the object
"Drag" the object to the desired location by moving the pointer to
"Drop" the object by releasing the button
Dragging requires more physical effort than moving the same pointing
device without holding down any buttons. Because of this, a user
cannot move as quickly and precisely while dragging (see Fitts' law).
However, drag-and-drop operations have the advantage of thoughtfully
chunking together two operands (the object to drag, and the drop
location) into a single action. Extended dragging and dropping (as
in graphic design) can stress the mousing hand.
A design problem appears when the same button selects and drags items.
Imprecise movement can cause a dragging when the user just wants to
Another problem is that the target of the dropping can be hidden under
other objects. The user would have to stop the dragging, make both the
source and the target visible and start again. In classic Mac OS the
top-of-screen menu bar served as a universal "drag cancel" target.
This issue has been dealt with in
Mac OS X
Mac OS X with the introduction of
In Mac OS
Drag and drop, called click and drag at the time, was used in the
original Macintosh to manipulate files (for example, copying them
between disks or folders.).
System 7 added the ability to open a
document in an application by dropping the document icon onto the
In System 7.5, drag and drop was extended to common clipboard
operations like copying or moving textual content within a document.
Content could also be dragged into the filesystem to create a
"clipping file" which could then be stored and reused.
For most of its history Mac OS has used a single button mouse with the
button covering a large portion of the top surface of the mouse. This
may mitigate the ergonomic concerns of keeping the button pressed
Workplace Shell of
OS/2 uses dragging and dropping extensively
with the secondary mouse button, leaving the primary one for selection
and clicking. Its use like that of other advanced Common User Access
features distinguished native
OS/2 applications from
HTML5 working draft specification includes support for drag and
HTML5 supports different kinds of dragging and dropping
Drag and Drop texts and HTML codes
Drag and Drop HTML elements
Drag and Drop files
Based on needed action, one of the above types can be used. Note that
when an HTML element is dragged for moving its current position, its
ID is sent to the destination parent element; so it sends a text and
can be considered as the first group.
Google's web-based e-mail application
Gmail supports drag-and-drop of
images and attachments in the latest
Google Chrome browser and Apple's
Safari (5.x). And Google
Image search supports drag & drop.
On a touch screen
Touch screen interfaces also include drag and drop, or more precisely,
long press, and then drag, e.g. on the iPhone or Android home screens.
iOS 11 implements a drag-and-drop feature which allows the user to
touch items (and tap with other fingers to drag more) within an app or
between apps on IPads. On iPhones, the functionality is only
available within the same app that the user started the drag.
In end-user programming
Drag and drop
Drag and drop is considered an important program construction approach
in many end-user development systems. In contrast to more traditional,
text-based programming languages, many end-user programming languages
are based on visual components such as tiles or icons that are
manipulated by end users through drag-and-drop interfaces. Drag and
drop is also featured in many shader editing programs for graphics
tools, such as Blender.
Drag and drop
Drag and drop also features in some video
game engines, including Unreal Engine, GameMaker: Studio, Construct 2
and, with expansion, Unity (game engine).
A common example is dragging an icon on a virtual desktop to a special
trashcan icon to delete a file.
Further examples include:
Dragging a data file onto a program icon or window for viewing or
processing. For instance, dropping an icon that represents a text file
into a Microsoft Word window signifies "Open this document as a new
document in Word"
Moving or copying files to a new location/directory/folder,
Adding objects to a list of objects to be processed,
Rearranging widgets in a graphical user interface to customize their
Dragging an attribute onto an object to which the command is to be
e.g. dragging a color onto a graphical object to change its color,
Dragging a tool to a canvas location to apply the tool at that
Creating a hyperlink from one location or word to another location or
Most word processors allow dragging selected text from one point to
Dragging a series of codeblocks such as in Blender for designing
shaders and materials.
Point and click
Snap (computer graphics)
^ Jakob Nielsen, "Top-10 Application-Design Mistakes,"
http://www.useit.com/alertbox/application-mistakes.html (19 February
^ Buxton, W. (1986). "Chunking and Phrasing and the Design of
Computer Dialogues". Proceedings of the IFIP World Computer
Congress. pp. 475–480. Archived from the original on 7 June
^ "Disk Swapper's Elbow". folklore.org.
^ "The Grand Unified Model (2): The Finder". folklore.org.
HTML5 W3C Working Draft". w3.org.
^ "iPad Drag and Drop, Multitasking, and Split View in iOS 11:
Everything you need to know!". iMore. Retrieved 2017-10-10.
^ Vincent, James (2017-06-07). "The iPhone is also getting drag and
drop with iOS 11". The Verge. Retrieved 2017-06-23.
^ "Render — Blender Reference Manual".