Creative Saplings

HTML5 – Arrastar e soltar

Janeiro 18, 2021
No Comments
Anúncios

Arrastar e soltar (DnD) é um poderoso conceito de interface de usuário que facilita copiar, reordenar e deletar de itens com a ajuda de cliques do mouse. Isso permite que o usuário clique e segure o botão do mouse sobre um elemento, arraste-o para outro local e solte o botão do mouse para soltar o elemento lá.

Para obter a funcionalidade de arrastar e soltar com o HTML4 tradicional, os desenvolvedores teriam que usar programação JavaScript complexa ou outras estruturas JavaScript como jQuery etc.

Agora, o HTML 5 veio com uma API de arrastar e soltar (DnD) que traz suporte nativo de DnD para a criação de navegadores é muito mais fácil de codificar.

HTML 5 DnD é compatível com todos os principais navegadores, como Chrome, Firefox 3.5 e Safari 4, etc.

Arrastar e soltar eventos

Existem vários eventos que são disparados durante vários estágios da operação de arrastar e soltar. Esses eventos estão listados abaixo –

Sr.No. Eventos & Descrição
1

dragstart

Dispara quando o usuário começa a arrastar o objeto.

2

dragenter

Disparado quando o mouse é movido pela primeira vez sobre o elemento de destino enquanto um arrasto está ocorrendo. Um ouvinte para este evento deve indicar se um drop é permitido neste local. Se não houver ouvintes, ou se os ouvintes não realizarem operações, não será permitida uma eliminação por padrão.

3

dragover

Este evento é disparado quando o mouse é movido sobre um elemento quando um arrasto está ocorrendo. Na maioria das vezes, a operação que ocorre durante um ouvinte será a mesma que o evento dragenter.

4

dragleave

Este evento é disparado quando o mouse deixa um elemento enquanto um arrasto está ocorrendo. Os ouvintes devem remover todos os marcadores de realce ou inserção usados para comentários de queda.

5

arrastar

Dispara sempre que o mouse é movido enquanto o objeto está sendo arrastado.

6

drop

O evento drop é disparado no elemento onde o drop ocorreu no final da operação de arrastar. Um ouvinte seria responsável por recuperar os dados que estão sendo arrastados e inseri-los no local de soltar.

7

dragend

Dispara quando o usuário libera o botão do mouse enquanto arrasta um objeto.

Nota – Observe que apenas eventos de arrastar são disparados; eventos de mouse, como mousemove, não são disparados durante uma operação de arrastar.

O objeto DataTransfer

Os métodos de ouvinte de evento para todos os eventos arrastar e soltar aceitam o objeto Event que tem um atributo somente leitura chamado dataTransfer.

O event.dataTransfer retorna o objeto DataTransfer associado ao evento da seguinte maneira –

function EnterHandler(event) { DataTransfer dt = event.dataTransfer; .............}

O objeto DataTransfer contém dados sobre o arrasto e operação de queda. Esses dados podem ser recuperados e definidos em termos de vários atributos associados ao objeto DataTransfer, conforme explicado abaixo –

Sr.No. Atributos de transferência de dados e sua descrição
1

dataTransfer.dropEffect

  • Retorna o tipo de operação que está selecionada atualmente.

  • Este atributo pode ser definido para alterar a operação selecionada.

  • Os valores possíveis são nenhum, copiar, vincular e mover.

2

dataTransfer.effectAllowed

  • Retorna os tipos de operações que devem ser permitidas.

  • Este atributo pode ser definido para alterar as operações permitidas.

  • Os valores possíveis são none, copy, copyLink, copyMove, link, linkMove, move, all e não inicializado.

3

dataTransfer.types

Retorna um DOMStringList listando os formatos que foram definidos no evento dragstart. Além disso, se algum arquivo estiver sendo arrastado, um dos tipos será a string “Arquivos”.

4

dataTransfer.clearData ()

Remove os dados dos formatos especificados. Remove todos os dados se o argumento for omitido.

5

dataTransfer.setData (formato, dados)

Adiciona os dados especificados.

6

dados = transferência de dados.getData (format)

Retorna os dados especificados. Se não houver esses dados, retorna a string vazia.

7

dataTransfer.files

Retorna uma FileList dos arquivos sendo arrastados, se houver.

8

dataTransfer.setDragImage (element, x, y)

Usa o elemento fornecido para atualizar o feedback de arrastar, substituindo qualquer feedback especificado anteriormente.

9

dataTransfer.addElement (elemento)

Adiciona o elemento fornecido ao lista de elementos usados para renderizar o feedback de arrastar.

Processo de arrastar e soltar

A seguir estão as etapas a serem realizadas para implementar a operação Arrastar e Soltar –

Etapa 1 – Tornando um objeto arrastável

Aqui estão as etapas a serem seguidas –

  • Se você deseja arrastar um elemento, você precisa definir o atributo draggable como true para esse elemento.

  • Defina um ouvinte de evento para dragstart que s corta os dados que estão sendo arrastados.

  • O dragstart do ouvinte de evento definirá os efeitos permitidos (copiar, mover, vincular ou alguma combinação).

A seguir está o exemplo para tornar um objeto arrastável –

Isso produzirá o seguinte resultado –

Etapa 2 – Soltando o objeto

Para aceitar uma queda, o destino de soltar deve ouvir pelo menos três eventos.

  • O evento dragenter, que é usado para determinar se o alvo de soltar deve ou não aceitar a queda . Se o drop for aceito, então este evento deve ser cancelado.

  • O evento dragover, que é usado para determinar qual feedback deve ser mostrado ao usuário. Se o evento for cancelado, o feedback (normalmente o cursor) é atualizado com base no valor do atributo dropEffect.

  • Finalmente, o evento drop, que permite o descarte real a ser realizada.

A seguir está o exemplo para soltar um objeto em outro objeto –

Isso produzirá o seguinte resultado –

Anúncios

Articles
Previous Post

Diferença entre JDK, JRE e JVM

Next Post

Nomes de cachorros do país

Deixe uma resposta Cancelar resposta

Artigos recentes

  • As melhores escolas de fotografia do mundo, 2020
  • Cidadãos soberanos levam sua filosofia antigovernamental para as estradas
  • Guia de custos de reparo de estuque
  • Muckrakers (Português)
  • Oncologia de precisão

Arquivo

  • Fevereiro 2021
  • Janeiro 2021
  • Dezembro 2020
  • Novembro 2020
  • Outubro 2020
  • Setembro 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.