HTML -Tutorial

HTML-HOME HTML-Einführung HTML-Editoren HTML-Basis HTML-Elemente HTML-Attribute HTML-Überschriften HTML-Absätze HTML-Stile HTML-Formatierung HTML-Zitate HTML-Kommentare HTML-Farben HTML-CSS HTML-Links HTML-Bilder HTML-Favicon HTML-Tabellen HTML-Listen HTML-Block und Inline HTML-Klassen HTML-ID HTML-Iframes HTML-JavaScript HTML-Dateipfade HTML-Kopf HTML-Layout HTML-responsiv HTML Computercode HTML-Semantik HTML-Styleguide HTML-Entitäten HTML-Symbole HTML-Emojis HTML-Zeichensatz HTML-URL-Codierung HTML vs. XHTML

HTML -Formulare

HTML-Formulare HTML-Formularattribute HTML-Formularelemente HTML-Eingabetypen HTML-Eingabeattribute HTML-Eingabeformularattribute

HTML -Grafiken

HTML-Leinwand HTML-SVG

HTML- Medien

HTML-Medien HTML-Video HTML-Audio HTML-Plugins HTML-YouTube

HTML -APIs

HTML-Geolokalisierung HTML-Drag/Drop HTML-Webspeicher HTML-Webworker HTML-SSE

HTML- Beispiele

HTML-Beispiele HTML-Quiz HTML-Übungen HTML-Zertifikat HTML-Zusammenfassung HTML-Barrierefreiheit

HTML -Referenzen

HTML-Tag-Liste HTML-Attribute Globale HTML-Attribute HTML-Browser-Unterstützung HTML-Ereignisse HTML-Farben HTML-Leinwand HTML-Audio/Video HTML-Doctypes HTML-Zeichensätze HTML-URL-Codierung HTML-Sprachcodes HTTP-Nachrichten HTTP-Methoden PX-zu-EM-Konverter Tastatürkürzel

HTML -Drag-and-Drop-API


In HTML kann jedes Element gezogen und abgelegt werden.


Beispiel

W3Schulen

Ziehen Sie das W3Schools-Bild in das Rechteck.


Ziehen und ablegen

Drag & Drop ist eine sehr verbreitete Funktion. Es ist, wenn Sie ein Objekt "greifen" und es an eine andere Stelle ziehen.


Browser-Unterstützung

Die Zahlen in der Tabelle geben die erste Browserversion an, die Drag & Drop vollständig unterstützt.

API
Drag and Drop 4.0 9.0 3.5 6.0 12.0

HTML-Drag-and-Drop-Beispiel

Das folgende Beispiel ist ein einfaches Drag-and-Drop-Beispiel:

Beispiel

<!DOCTYPE HTML>
<html>
<head>
<script>
function allowDrop(ev) {
  ev.preventDefault();
}

function drag(ev) {
  ev.dataTransfer.setData("text", ev.target.id);
}

function drop(ev) {
  ev.preventDefault();
  var data = ev.dataTransfer.getData("text");
  ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>

<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

</body>
</html>

Es mag kompliziert erscheinen, aber gehen wir die verschiedenen Teile eines Drag-and-Drop-Ereignisses durch.



Machen Sie ein Element ziehbar

Zunächst einmal: Um ein Element ziehbar zu machen, setzen Sie das draggableAttribut auf true:

<img draggable="true">

Was soll gezogen werden - ondragstart und setData()

Geben Sie dann an, was passieren soll, wenn das Element gezogen wird.

Im obigen Beispiel ondragstartruft das Attribut eine Funktion auf, drag(event), die angibt, welche Daten gezogen werden sollen.

Die dataTransfer.setData()Methode legt den Datentyp und den Wert der gezogenen Daten fest:

function drag(ev) {
  ev.dataTransfer.setData("text", ev.target.id);
}

In diesem Fall ist der Datentyp „text“ und der Wert ist die ID des ziehbaren Elements („drag1“).


Wohin fallen lassen - ondrago

Das ondragoverEreignis gibt an, wo die gezogenen Daten abgelegt werden können.

Standardmäßig können Daten/Elemente nicht in anderen Elementen abgelegt werden. Um einen Drop zuzulassen, müssen wir die Standardbehandlung des Elements verhindern.

Dies geschieht durch Aufrufen der event.preventDefault()Methode für das Ereignis ondragover:

event.preventDefault()

Machen Sie den Drop - ondrop

Wenn die gezogenen Daten abgelegt werden, tritt ein Drop-Ereignis auf.

Im obigen Beispiel ruft das Attribut ondrop eine Funktion drop(event) auf:

function drop(ev) {
  ev.preventDefault();
  var data = ev.dataTransfer.getData("text");
  ev.target.appendChild(document.getElementById(data));
}

Code erklärt:

  • Rufen Sie preventDefault() auf, um die standardmäßige Verarbeitung der Daten durch den Browser zu verhindern (standardmäßig ist der Link beim Ablegen geöffnet).
  • Rufen Sie die gezogenen Daten mit der Methode dataTransfer.getData() ab. Diese Methode gibt alle Daten zurück, die in der Methode setData() auf denselben Typ gesetzt wurden
  • Die gezogenen Daten sind die ID des gezogenen Elements ("drag1")
  • Hängen Sie das gezogene Element an das Drop-Element an

Mehr Beispiele

Beispiel

So ziehen (und legen) Sie ein Bild zwischen zwei <div>-Elementen hin und her: