HTML5 Dra och släpp görs enkelt: Hur man skapar HTML5-dragbara objekt

TL; DR – HTML5 Drag and Drop API låter dig ta ett HTML-objekt med markören och dra det till en annan plats.

Vad kan du dra och släppa i HTML5?

HTML5 låter dig göra alla element dragbara, så att du kan plocka upp det med markören och dra det till en annan plats som definieras som ett droppbart element. I exemplet nedan kan du försöka dra en bild till en kvadrat:

Denna funktion förenklar användarupplevelsen och tillåter till och med att skapa enkla onlinespel (t.ex. du kan dra och släppa virtuella schackpjäser). När du drar ett element flyttas dess transparenta replika tillsammans med markören tills du släpper det genom att släppa musknappen.

Tekniskt sett är Dra och släpp ett JavaScript-API som läggs till HTML5. Därför är det viktigt att ha åtminstone grundläggande kunskaper om skript för att kunna arbeta med denna funktion.

Händelser för HTML5 Dra och släpp

I tabellen nedan ser du alla händelser som är relevanta för dra och släpp-funktionen:

Händelse Förklaring
dra Markören rör sig medan du drar ett element
drop Dragprocessen är klar
dragstart Markören plockar upp elementet och börjar dra
dragend Musknappen släpps och släpper elementet
dragenter Markören går in i målelementet
dragblad Markören lämnar målelementet
dragover Markören rör sig över målelementet

Steg för steg Förklaring av dra och släpp

HTML5 dra och släpp-kodning verkar ganska komplicerat vid första anblicken eftersom det inkluderar skript i JS. Låt oss dock studera varje del av processen för att göra det lättare att förstå.

Dragbara element

Först måste du se till att elementet du vill dra har en HTML5 draggable attribut tillämpat och dess värde inställt på true:

Exempel

Dra

Definiera sedan vad som ska hända när du drar ett objekt. Du kan göra det genom att ringa en händelsehanterare för en dragstart -händelse och definierar en funktion som ska köras.

Värdet och datatypen för den släpade datan måste ställas in av dataTransfer.setData() metod:

Exempel

Släppning

HTML5-dragbar data specificeras genom att en händelsehanterare bifogas till dragover -händelsen.

Element och data kan inte tappade i andra element som standard. Det betyder att du måste stoppa elementet standardbeteende med event.preventDefault() -metoden:

Exempel

En drop händelse inträffar när HTML5-släpbara data släpps. Det kallas av ondrop händelsehanteraren:

Den slutliga koden: ett exempel

I grund och botten behöver du din kod för att kunna utför fyra steg:

  • Förhindra webbläsarens standardåtgärd relaterad till data genom att ringa preventDefault()
  • Få data med dataTransfer.getData() -metoden
  • Fäst det dragna elementet på släppelementet

Låt oss se hur det fungerar i exempel nedan:

HTML5 Dra och släpp: användbara tips

  • Du kan dra olika typer av element, inklusive men inte begränsat till filer, länkar, bilder och text.
  • Du kan också dra flera element samtidigt. Det rekommenderas dock att ha dem alla i samma format för konsistens.
  • Formelement som accepterar användarinmatning kan vara släppbara områden som standard.

Webbläsarstöd

Chrome

46+

Edge

Alla

Firefox

3.5+

IE

10+

Opera

Alla

Safari

3.1+

Mobilwebbläsare stöd

Chrome

Firefox

Alla

Opera

Safari

Leave a Reply

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *