Exemplo
Executar um JavaScript quando o usuário tiver terminado arrastando um <p> elemento:
<p draggable="true" ondragend="myFunction(event)">Drag me!</p>
Tente você mesmo " Mais "Try it Yourself" exemplos abaixo.
Definição e Uso
O evento ondragend ocorre quando o usuário tiver terminado arrastando uma seleção elemento ou texto.
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
Suporte navegador
Os números na tabela especificar a primeira versão do navegador que suporta totalmente o evento.
Evento | |||||
---|---|---|---|---|---|
ondragend | 4.0 | 9 | 3,5 | 6 | 12,0 |
Sintaxe
Em HTML:
Em JavaScript:
object .ondragend=function(){ Tente você mesmo "
Em JavaScript, usando o addEventListener() Método:
object .addEventListener("dragend", 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: | Não |
Tipo de evento: | DragEvent |
tags HTML suportadas: | Todos os elementos HTML |
DOM Versão: | Nível 3 Eventos |
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
objeto de evento