Building Your Learning Module...
Getting things ready for you!
Find videos you like?
Save to resource drawer for future reference!
The draggable attribute makes any HTML element draggable. Combined with JavaScript event listeners, you can create powerful drag-and-drop interfaces.
Click & Hold
Move Element
Drop Target
draggable="true" enables dragging,draggable="false" disables itUnderstanding the drag event sequence
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Drag Event Flow</title>
</head>
<body>
<div class="drag-flow">
<div class="step">
<div class="num">1</div>
<div class="label">dragstart</div>
<div class="desc">User starts dragging</div>
</div>
<div class="arrow">→</div>
<div class="step">
<div class="num">2</div>
<div class="label">drag</div>
<div class="desc">Element is being dragged</div>
</div>
<div class="arrow">→</div>
<div class="step">
<div class="num">3</div>
<div class="label">dragover</div>
<div class="desc">Dragged over drop zone</div>
</div>
<div class="arrow">→</div>
<div class="step">
<div class="num">4</div>
<div class="label">drop</div>
<div class="desc">Released in drop zone</div>
</div>
</div>
</body>
</html>Loading preview...
Try dragging the boxes around
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Basic Draggable</title>
</head>
<body>
<h1>Drag These Elements</h1>
<div class="items">
<div class="box" draggable="true">📦 Draggable Box</div>
<div class="box" draggable="true">🎁 Draggable Gift</div>
<div class="box" draggable="false">🔒 Not Draggable</div>
</div>
<p class="note">Try dragging the boxes!</p>
</body>
</html>Loading preview...
Note: Links and images are draggable by default. Use draggable="false" to prevent dragging.
Full drag and drop with event handlers
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Drag and Drop</title>
</head>
<body>
<h1>Drag Items to Drop Zone</h1>
<div class="source">
<div class="item" draggable="true" id="item1">🍎 Apple</div>
<div class="item" draggable="true" id="item2">🍌 Banana</div>
<div class="item" draggable="true" id="item3">🍊 Orange</div>
</div>
<div class="dropzone" id="dropzone">
Drop items here
</div>
</body>
</html>Loading preview...
Interactive sortable task list
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sortable List</title>
</head>
<body>
<h1>Drag to Reorder Tasks</h1>
<ul class="task-list" id="tasks">
<li draggable="true">✅ Learn HTML</li>
<li draggable="true">📝 Practice CSS</li>
<li draggable="true">⚡ Master JavaScript</li>
<li draggable="true">🚀 Build Projects</li>
</ul>
</body>
</html>Loading preview...
dragstartDragged elementUser starts dragging an element
dragDragged elementElement is being dragged
dragendDragged elementDrag operation ends
dragenterDrop zoneDragged element enters drop zone
dragoverDrop zoneDragged element is over drop zone
dragleaveDrop zoneDragged element leaves drop zone
dropDrop zoneElement is dropped