Arrastar e soltar é um recurso comum, ou seja, arraste para outra posição após o objeto de captura.
No HTML5, arrastar e soltar é uma peça padrão e qualquer elemento pode ser arrastado e soltado.
Clique primeiro em um pequeno exemplo: execute javascript quando o usuário começa a arrastar elementos <p>
<P Draggable = True OnDragStart = MyFunction (Evento)> Drague -me!
Dica: os links e as imagens são arrastados por padrão e não precisam de propriedade draggable.
Definição e usoOs seguintes eventos serão acionados durante o processo de arrastar e soltar:
O Internet Explorer 9+, Firefox, Opera, Chrome e Safari suportam arrastar.
NOTA: O Safari 5.1.2 não suporta arrasto;
ExemploPublique o código primeiro e depois explique um por um:
<! Border: 1px Solid #AAAAAA;} </SYLEY> </head> <body> <p> arrastando img_w3slogo.gif imagem para a caixa retangular: </p> <div id = div1 ondrop = gota (evento) ondragover = allowDrop (Mesmo t)> </div> <br> <img id = drag1 src = imagens/img_w3slogo. Ev.PreventDefalt ();} função arrastar (ev) {ev.datatransfer.setData (text, ev.target.id);} função gota (ev) {ev.preventdefault (); ;
O efeito da página antes de arrastar é:
Vamos analisar o significado do código a seguir abaixo.
Defina o elemento pode ser arrastado e soltadoPrimeiro de tudo, para fazer o elemento ser arrastado, defina a propriedade Draggable como True:
<Img draggable = true>O que arrastar-se e seta e setData ()
É especificado o que acontece quando o elemento é arrastado.
No exemplo acima, a propriedade ONDRAGSTART chama uma função, arrastar (evento), que especifica os dados arrastados.
DataTransfer.SetData () Método Defina o tipo de dados e o valor dos dados de arrastar dados:
Função drag (ev) {ev.datatransfer.setData (text, ev.target.id);}
Neste exemplo, o tipo de dados é o texto e o valor é ID (drag1) que pode arrastar o elemento.
Onde colocá-lo-ondragoverO evento OnDragover estipula onde colocar os dados arrastados.
Padrão, dados/elementos não podem ser colocados em outros elementos. Se você precisar definir o posicionamento permitido, devemos impedir o processamento padrão dos elementos.
Isso é para ligar para o método Event.PreventDefault () do evento OnDragover: :):
Event.PreventDefault ()Colocando-Androp
Quando os dados de arrastar são colocados, o evento de queda ocorre.
No exemplo acima, o atributo ONDROP chama uma função, Drop (Evento):
Função Drop (EV) {EV.PreventDefault ();
Explicação de código:
Os resultados da implementação são os mostrados na figura:
Objeto DatatransferDurante a operação de arrasto, podemos usar o objeto Datatransfer para transmitir os dados para executar outras operações nos dados quando a operação de arrasto terminar.
Atributo de objeto:Função dragstart_handler (ev) {console.log (dragstart); = p1 draggable = true ondragstart = dragstart_handler (evento);> esse elemento é drawgableDefina os dados do arrasto
Função dragstart_handler (ev) {// Adicione o drag data ev.datatransfer.setdata (text/plain, ev.target.id); ;Defina a imagem de arrasto
Função Dragstart_handler (EV) {// Crie uma imagem e use -a para a imagem de arrasto. ();Defina o efeito de arrasto
Função dragstart_handler (ev) {// Defina o efeito de arrasto para copiar ev.datatransfer.dropeffft = copy;}Defina uma zona de gota
Função dragover_handler (ev) {ev.preventDefault (); Elemento para os dados domina do destino = ev.datatransfer.getdata (text); Div> </body>Problema de arrastamento do navegador Firefox
Mas vá aqui e encontre um problema no navegador Firefox:
O arrasto do HTML5 usa o PreventDefault para impedir que a página pop -up apareça, mas não funciona sob o Firefox?
Solução:
document.body.ondrop = function (event) {event.preventDefault ();
Ou para o exemplo acima, também é possível adicionar ao método OnDrop:
Função Drop (EV) {EV.PreventDefault ();
O acima é todo o conteúdo deste artigo.