HTMLElement: dragover event
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Thedragover event is fired when an element or text selection is being dragged over a valid drop target (every few hundred milliseconds).
This event is cancelable and may bubble up to theDocument andWindow objects.
In this article
Syntax
Use the event name in methods likeaddEventListener(), or set an event handler property.
addEventListener("dragover", (event) => { })ondragover = (event) => { }Event type
Event properties
In addition to the properties listed below, properties from the parent interface,Event, are available.
DragEvent.dataTransferRead onlyThe data that is transferred during a drag-and-drop interaction.
Examples
>A minimal drag-and-drop example
In this example, we have a draggable element inside a container. Try grabbing the element, dragging it over the other container, and releasing it.
We use three event handlers here:
- in the
dragstartevent handler, we get a reference to the element that the user dragged - in the
dragoverevent handler for the target container, we callevent.preventDefault(), which enables it to receivedropevents. - in the
dropevent handler for the drop zone, we handle moving the draggable element from the original container to the drop zone.
For a complete example of drag and drop, see the page for thedrag event.
HTML
<div> <div draggable="true">This div is draggable</div></div><div></div>CSS
body { /* Prevent the user from selecting text in the example */ user-select: none;}#draggable { text-align: center; background: white;}.dropzone { width: 200px; height: 20px; background: blueviolet; margin: 10px; padding: 10px;}JavaScript
let dragged = null;const source = document.getElementById("draggable");source.addEventListener("dragstart", (event) => { // store a ref. on the dragged elem dragged = event.target;});const target = document.getElementById("drop-target");target.addEventListener("dragover", (event) => { // prevent default to allow drop event.preventDefault();});target.addEventListener("drop", (event) => { // prevent default action (open as link for some elements) event.preventDefault(); // move dragged element to the selected drop target if (event.target.className === "dropzone") { dragged.parentNode.removeChild(dragged); event.target.appendChild(dragged); }});Result
Specifications
| Specification |
|---|
| HTML> # handler-ondragover> |
| HTML> # event-dnd-dragover> |