The drop event is fired when an element or text selection is dropped on a valid drop target.
General info
| Bubbles | Yes | 
| Cancelable | Yes | 
| Target objects | Document,Element | 
| Interface | DragEvent | 
| Default Action | Varies. | 
Properties
| Property | Type | Description | 
|---|---|---|
| targetRead only | EventTarget | The element underneath the element being dragged. | 
| typeRead only | DOMString | The type of event. | 
| bubblesRead only | Boolean | Whether the event normally bubbles or not | 
| cancelableRead only | Boolean | Whether the event is cancellable or not? | 
| viewRead only | WindowProxy | document.defaultView(windowof the document) | 
| detailRead only | long(float) | 0. | 
| dataTransfer | DataTransfer | The data that underlies a drag-and-drop operation, known as the drag data store. Read only mode | 
| currentTargetRead only | EventTarget | The node that had the event listener attached. | 
| relatedTargetRead only | EventTarget | For mouseover,mouseout,mouseenterandmouseleaveevents: the target of the complementary event (themouseleavetarget in the case of amouseenterevent).nullotherwise. | 
| screenXRead only | long | The X coordinate of the mouse pointer in global (screen) coordinates. | 
| screenYRead only | long | The Y coordinate of the mouse pointer in global (screen) coordinates. | 
| clientXRead only | long | The X coordinate of the mouse pointer in local (DOM content) coordinates. | 
| clientYRead only | long | The Y coordinate of the mouse pointer in local (DOM content) coordinates. | 
| buttonRead only | unsigned short | The button number that was pressed when the mouse event was fired: Left button=0, middle button=1 (if present), right button=2. For mice configured for left handed use in which the button actions are reversed the values are instead read from right to left. | 
| buttonsRead only | unsigned short | The buttons being pressed when the mouse event was fired: Left button=1, Right button=2, Middle (wheel) button=4, 4th button (typically, "Browser Back" button)=8, 5th button (typically, "Browser Forward" button)=16. If two or more buttons are pressed, returns the logical sum of the values. E.g., if Left button and Right button are pressed, returns 3 (=1 | 2). More info. | 
| mozPressureRead only | float | The amount of pressure applied to a touch or tabdevice when generating the event; this value ranges between 0.0 (minimum pressure) and 1.0 (maximum pressure). | 
| ctrlKeyRead only | boolean | trueif the control key was down when the event was fired.falseotherwise. | 
| shiftKeyRead only | boolean | trueif the shift key was down when the event was fired.falseotherwise. | 
| altKeyRead only | boolean | trueif the alt key was down when the event was fired.falseotherwise. | 
| metaKeyRead only | boolean | trueif the meta key was down when the event was fired.falseotherwise. | 
Example
<div class="dropzone">
  <div id="draggable" draggable="true" ondragstart="event.dataTransfer.setData('text/plain',null)">
    This div is draggable
  </div>
</div>
<div class="dropzone"></div>
<div class="dropzone"></div>
<div class="dropzone"></div>
<style>
  #draggable {
    width: 200px;
    height: 20px;
    text-align: center;
    background: white;
  }
  .dropzone {
    width: 200px;
    height: 20px;
    background: blueviolet;
    margin-bottom: 10px;
    padding: 10px;
  }
</style>
<script>
  var dragged;
  /* events fired on the draggable target */
  document.addEventListener("drag", function( event ) {
  }, false);
  document.addEventListener("dragstart", function( event ) {
      // store a ref. on the dragged elem
      dragged = event.target;
      // make it half transparent
      event.target.style.opacity = .5;
  }, false);
  document.addEventListener("dragend", function( event ) {
      // reset the transparency
      event.target.style.opacity = "";
  }, false);
  /* events fired on the drop targets */
  document.addEventListener("dragover", function( event ) {
      // prevent default to allow drop
      event.preventDefault();
  }, false);
  document.addEventListener("dragenter", function( event ) {
      // highlight potential drop target when the draggable element enters it
      if ( event.target.className == "dropzone" ) {
          event.target.style.background = "purple";
      }
  }, false);
  document.addEventListener("dragleave", function( event ) {
      // reset background of potential drop target when the draggable element leaves it
      if ( event.target.className == "dropzone" ) {
          event.target.style.background = "";
      }
  }, false);
  document.addEventListener("drop", function( event ) {
      // prevent default action (open as link for some elements)
      event.preventDefault();
      // move dragged elem to the selected drop target
      if ( event.target.className == "dropzone" ) {
          event.target.style.background = "";
          dragged.parentNode.removeChild( dragged );
          event.target.appendChild( dragged );
      }
  }, false);
</script>
Specifications
| Specification | Status | Comment | 
|---|---|---|
| WHATWG HTML Living Standard The definition of 'drop event' in that specification. | Living Standard | |
| HTML5.1 The definition of 'drop event' in that specification. | Recommendation | Initial definition | 
Browser compatibility
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) | 
|---|---|---|---|---|---|---|
| Basic support | 4 | (Yes) | 3.5 (1.9.1) | 10 | 12 | 3.1 | 
| Feature | Android | Android Webview | Chrome for Android | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | 
|---|---|---|---|---|---|---|---|---|---|
| Basic support | No support | No support | No support | (Yes) | No support | No support | 10 | No support | No support | 
See also
Document Tags and Contributors
    
    Tags: 
    
  
                    
                       Contributors to this page: 
        erikadoyle, 
        Sebastianz, 
        AFBarstow, 
        jesusoterogomez, 
        KiraAndMaxim, 
        sivsivsree, 
        teoli, 
        ranadeep47, 
        Sheppy, 
        ethertank, 
        louisremi
                    
                    
                       Last updated by:
                      erikadoyle,