Building Your Learning Module...
Getting things ready for you!
Find videos you like?
Save to resource drawer for future reference!
The Drag and Drop API enables users to drag elements around the page and drop them into designated areas. It's perfect for file uploads, sortable lists, and interactive interfaces.
Add draggable="true" to any element
Pass data during drag operations
Handle file drops for uploads
<!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>
<div class="container">
<h1>🎯 Drag & Drop Demo</h1>
<p class="subtitle">Drag the colored boxes into the drop zone below</p>
<div class="drag-items" id="dragItems">
<div class="drag-item" draggable="true" data-id="item-1">📦 Item 1</div>
<div class="drag-item" draggable="true" data-id="item-2">📦 Item 2</div>
<div class="drag-item" draggable="true" data-id="item-3">📦 Item 3</div>
<div class="drag-item" draggable="true" data-id="item-4">📦 Item 4</div>
<div class="drag-item" draggable="true" data-id="item-5">📦 Item 5</div>
<div class="drag-item" draggable="true" data-id="item-6">📦 Item 6</div>
</div>
<div class="drop-zone" id="dropZone">
<div class="drop-zone-icon">⬇️</div>
<div class="drop-zone-text">
<strong>Drop Zone</strong><br>
Drag items here
</div>
<div class="dropped-items" id="droppedItems"></div>
</div>
<button class="reset-btn" onclick="resetAll()">🔄 Reset All</button>
</div>
</body>
</html>Loading preview...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>File Drop Upload</title>
</head>
<body>
<div class="container">
<h1>📁 File Drop Upload</h1>
<p class="subtitle">Drag and drop files here to upload</p>
<div class="upload-zone" id="uploadZone">
<div class="upload-icon">☁️</div>
<div class="upload-text">Drop files here</div>
<div class="upload-hint">or click to browse</div>
</div>
<div class="file-list" id="fileList"></div>
<input type="file" id="fileInput" multiple style="display: none;">
</div>
</body>
</html>Loading preview...
dragstartFired when drag begins
dragoverFired while dragging over drop zone
dropFired when item is dropped
dragendFired when drag completes
e.preventDefault() in dragover to enable droppingdataTransfer to pass data between drag and dropdraggable="true" attribute on elements you want to drag