HTML ondrag Attribute: This attribute is defined as it fires when an element or text selection is being dragged. This event is very similar to a drag and drop event. And the attribute is new in HTML 5. This attribute contains a single value script which works when an element is dragged. It is supported by all HTML elements.
HTML ondrag Attribute
This attribute can be applied to all the HTML elements.
Syntax: <element ondrag = “script”>
There are many event attributes that are used and can occur, in the different stages of a drag and drop operation.
Events fired on the draggable target (the source element)
- ondragstart – fires when the user starts to drag an element
- ondrag – fires when an element is being dragged
- ondragend – fires when the user has finished dragging the element
Events fired on the drop target
- ondragenter – fires when the dragged element enters the drop target
- ondragover – fires when the dragged element is over the drop target
- ondragleave – fires when the dragged element leaves the drop target
- ondrop – fires when the dragged element is dropped on the drop target
Browser Support
This attribute is supported by the following browsers:
- Chrome-4.0
- Firefox-3.5
- Internet Explorer-9.0
- Safari-6.0
- Opera-12.0
Example: for <p> element
<!DOCTYPE HTML> <html> <head> <style> .droptarget { float: left; width: 100px; height: 35px; margin: 15px; padding: 10px; border: 1px solid #aaaaaa; } </style> </head> <body> <p>Drag the p element back and forth between the two rectangles:</p> <div class="droptarget" ondrop="drop(event)" ondragover="allowDrop(event)"> <p ondragstart="dragStart(event)" ondrag="dragging(event)" draggable="true" id="dragtarget">Drag me!</p> </div> <div class="droptarget" ondrop="drop(event)" ondragover="allowDrop(event)"></div> <p style="clear:both;"></p> <p id="demo"></p> <script> function dragStart(event) { event.dataTransfer.setData("Text", event.target.id); } function dragging(event) { document.getElementById("demo").innerHTML = "The p element is being dragged"; } function allowDrop(event) { event.preventDefault(); } function drop(event) { event.preventDefault(); var data = event.dataTransfer.getData("Text"); event.target.appendChild(document.getElementById(data)); document.getElementById("demo").innerHTML = "The p element was dropped"; } </script> </body> </html>
Output: