tutoriais mais recente desenvolvimento web
 

ondrag Evento

<Objeto de evento

Exemplo

Executar um JavaScript quando um <p> elemento está sendo arrastado:

<p draggable="true" ondrag="myFunction(event)">Drag me!</p>
Tente você mesmo "

Mais "Try it Yourself" exemplos abaixo.


Definição e Uso

O evento ondrag ocorre quando um elemento ou seleção de texto está sendo arrastado.

Arrastar e soltar é uma característica muito comum em HTML5. É quando você "grab" um objeto e arrastá-lo para um local diferente. Para mais informações, consulte o nosso Tutorial HTML em HTML5 Drag and Drop .

Nota: Para fazer com que um elemento arrastável, usar o HTML5 mundial draggable atributo.

Dica: links e imagens podem ser arrastados por padrão, e não precisa do draggable atributo.

Existem muitos eventos que são usados, e pode ocorrer, nas diferentes fases de uma operação de arrastar e soltar:

  • Eventos disparados no alvo draggable (the source element) :
    • ondragstart - ocorre quando o usuário começa a arrastar um elemento
    • ondrag - ocorre quando um elemento está sendo arrastado
    • ondragend - ocorre quando o usuário tiver terminado arrastando o elemento

  • Eventos disparados sobre o destino de soltar:
    • OnDragEnter - ocorre quando o elemento arrastado entra no alvo gota
    • ondragover - ocorre quando o elemento é arrastado sobre o alvo gota
    • OnDragLeave - ocorre quando o elemento arrastado deixa o destino de soltar
    • ondrop - ocorre quando o elemento arrastado é solto sobre o destino de soltar

Nota: Ao arrastar um elemento, o evento ondrag dispara cada 350 milissegundos.


Suporte navegador

Os números na tabela especificar a primeira versão do navegador que suporta totalmente o evento.

Evento
ondrag 4.0 9 3,5 6 12,0

Sintaxe

Em HTML:

Em JavaScript:

object .ondrag=function(){ Tente você mesmo "

Em JavaScript, usando o addEventListener() Método:

object .addEventListener("drag", myScript );
Tente você mesmo "

Nota: O addEventListener() método não é suportado no Internet Explorer 8 e versões anteriores.


Detalhes técnicos

Bolhas: sim
cancelable: sim
Tipo de evento: DragEvent
tags HTML suportadas: Todos os elementos HTML
DOM Versão: Nível 3 Eventos

Exemplos

mais Exemplos

Exemplo

A demonstração de todos os possíveis eventos de arrastar e soltar:

<p draggable="true" id="dragtarget">Drag me!</p>

<div class="droptarget">Drop here!</div>

<script>
/* ----------------- Events fired on the drag target ----------------- */

document.addEventListener("dragstart", function(event) {
    // The dataTransfer.setData() method sets the data type and the value of the dragged data
    event.dataTransfer.setData("Text", event.target.id);

    // Output some text when starting to drag the p element
    document.getElementById("demo").innerHTML = "Started to drag the p element.";

    // Change the opacity of the draggable element
    event.target.style.opacity = "0.4";
});

// While dragging the p element, change the color of the output text
document.addEventListener("drag", function(event) {
    document.getElementById("demo").style.color = "red";
});

// Output some text when finished dragging the p element and reset the opacity
document.addEventListener("dragend", function(event) {
    document.getElementById("demo").innerHTML = "Finished dragging the p element.";
    event.target.style.opacity = "1";
});


/* ----------------- Events fired on the drop target ----------------- */

// When the draggable p element enters the droptarget, change the DIVS's border style
document.addEventListener("dragenter", function(event) {
    if ( event.target.className == "droptarget" ) {
        event.target.style.border = "3px dotted red";
    }
});

// By default, data/elements cannot be dropped in other elements. To allow a drop, we must prevent the default handling of the element
document.addEventListener("dragover", function(event) {
    event.preventDefault();
});

// When the draggable p element leaves the droptarget, reset the DIVS's border style
document.addEventListener("dragleave", function(event) {
    if ( event.target.className == "droptarget" ) {
        event.target.style.border = "";
    }
});

/* On drop - Prevent the browser default handling of the data (default is open as link on drop)
Reset the color of the output text and DIV's border color
Get the dragged data with the dataTransfer.getData() method
The dragged data is the id of the dragged element ("drag1")
Append the dragged element into the drop element
*/
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));
    }
});
</script>
Tente você mesmo "

Páginas relacionadas

HTML Tutorial: Arraste HTML5 and Drop

Referência HTML: HTML Atributo draggable


Evento Object Reference objeto de evento