ondropEvento

事件对象参考手册Objeto de evento

Ejemplo

Ejecutar JavaScript cuando un elemento arrastrable se coloca en un elemento <div>:

<div ondrop="myFunction(event)"></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:

<element ondrop="myScript">Pruébalo

En JavaScript:

object.ondrop=function(){myScript};Pruébalo

En JavaScript, usando el método addEventListener():

object.addEventListener("drop", myScript);Pruébalo

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


Examples

Más ejemplos

Ejemplo

El siguiente ejemplo demuestra todos los eventos de arrastrar y soltar:

/* Se activa al arrastrar */
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