ondropEvento
Ejemplo
Ejecutar JavaScript cuando un elemento arrastrable se coloca en un elemento <div>:
Pruébalo »
La parte inferior de este artículo contiene más ejemplos.
Definición y uso
El evento ondrop se activa cuando un elemento arrastrable o un texto seleccionado se coloca en el área de destino.
Arrastrar y soltar es una funcionalidad muy común en HTML5. Para obtener más información, puede consultar en nuestro tutorial de HTML el apartadoArrastrar y soltar en HTML5。
Nota:Para que un elemento sea arrastrable, es necesario utilizar el atributodraggableHTML5.
Consejo:Los enlaces y las imágenes se pueden arrastrar de forma predeterminada, no necesitan el atributo draggable.
Durante el proceso de arrastrar y soltar se activan los siguientes eventos:
-
Eventos que se activan en el objetivo de arrastre(elemento de origen):
- ondragstart- Se activa cuando el usuario comienza a arrastrar el elemento
- ondrag- Se activa mientras el elemento se está arrastrando
- ondragend- Se activa cuando el usuario termina de arrastrar el elemento
-
Eventos que se activan en el objetivo de soltar:
- ondragenter- Este evento se activa cuando el objeto arrastrado con el mouse entra en el área de su contenedor
- ondragover- Este evento se activa cuando un objeto arrastrado se mueve dentro del área del contenedor de otro objeto
- ondragleave- Este evento se activa cuando el objeto arrastrado con el mouse sale del área de su contenedor
- ondrop: este evento se activa cuando se suelta el botón del mouse durante un arrastre
Compatibilidad del navegador
Nota:Al arrastrar un elemento, el evento ondragover se activa cada 350 milisegundos.
| Evento | |||||
|---|---|---|---|---|---|
| ondrop | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
Sintaxis
En HTML:
En JavaScript:
En JavaScript, usando el método addEventListener():
Nota:Internet Explorer 8 y versiones anteriores de IE no admiten eladdEventListener()método.
Detalles técnicos
| Burbujeo: | Yes |
|---|---|
| Cancelable: | Yes |
| Tipo de evento: | DragEvent |
| Etiquetas HTML compatibles: | All HTML elements |

Más ejemplos
Ejemplo
El siguiente ejemplo demuestra todos los eventos de arrastrar y soltar:
document.addEventListener("dragstart", function(event) {
//El método dataTransfer.setData() establece el tipo de datos y los datos arrastrados
event.dataTransfer.setData("Text", event.target.id);
// Muestra algo de texto al arrastrar el elemento p
document.getElementById("demo").innerHTML = "Comenzando a arrastrar el elemento p.";
// Modifica la opacidad del elemento arrastrado
event.target.style.opacity = "0.4";
});
// Mientras arrastra el elemento p, cambia el color del texto de salida
document.addEventListener("drag", function(event) {
document.getElementById("demo").style.color = "red";
});
// Cuando se termina de arrastrar el elemento p, muestra algunos elementos de texto y restablece la opacidad
document.addEventListener("dragend", function(event) {
document.getElementById("demo").innerHTML = "Se completó el arrastre del elemento p";
event.target.style.opacity = "1";
});
/* Se activa después de completar el arrastre */
// Cuando el elemento p completa el arrastre y entra en droptarget, cambia el estilo del borde del div
document.addEventListener("dragenter", function(event) {
if ( event.target.className == "droptarget" ) {
event.target.style.border = "3px dotted red";
}
});
// De forma predeterminada, los datos/los elementos no se pueden arrastrar y soltar dentro de otros elementos. Para drop debemos evitar el manejo predeterminado del elemento
document.addEventListener("dragover", function(event) {
event.preventDefault();
});
// Cuando el elemento p arrastrable sale de droptarget, restablece el estilo del borde del div
document.addEventListener("dragleave", function(event) {
if ( event.target.className == "droptarget" ) {
event.target.style.border = "";
}
});
/* Para drop, evita el manejo predeterminado de los datos del navegador (en drop los enlaces se abren de forma predeterminada)
Restablece el color del texto de salida y el color del borde del DIV
Utiliza el método dataTransfer.getData() para obtener los datos arrastrados
El id del elemento de datos arrastrado ("drag1")
Adjunta el elemento arrastrado al elemento drop*/
document.addEventListener("drop", function(event) {
event.preventDefault();
if ( event.target.className == "droptarget" ) {
document.getElementById("demo").style.color = "";
event.target.style.border = "";
var data = event.dataTransfer.getData("Text");
event.target.appendChild(document.getElementById(data));
}
});
Pruébalo »
Páginas relacionadas
Tutorial de HTML:Arrastrar y soltar en HTML5
Manual de referencia de HTML:Atributo draggable de HTML
Objeto de evento Otras extensiones