HTML5 Drag and Drop (Drag and Drop) ist Teil des HTML5-Standards.
Drag and Drop (Drag and drop) ist eine gängige Funktion, bei der ein Objekt ergriffen und an eine andere Stelle gezogen wird.
wirdexample.comZiehen Sie Symbole in ein rechteckiges Feld.
Drag and Drop
Das Ziehen ist eine gängige Funktion, mit der Objekte ergriffen und an eine andere Stelle gezogen werden können.
In HTML5 ist das Ziehen eine Standardfunktion, mit der jedes Element gezogen werden kann.
Browser-Unterstützung
![]()
![]()
![]()
![]()
![]()
Internet Explorer 9+, Firefox, Opera, Chrome und Safari unterstützen das Ziehen.
Hinweis:Safari 5.1.2 unterstützt das Ziehen nicht.
HTML5 Drag-and-Drop-Beispiel
Das folgende Beispiel ist ein einfaches Drag-and-Drop-Beispiel:
Beispiel
Probieren Sie es aus »
Es mag kompliziert aussehen, aber wir können die verschiedenen Teile der Drag-and-Drop-Ereignisse getrennt untersuchen.
Machen Sie das Element ziehbar
Zuerst: Um ein Element ziehbar zu machen, setzen Sie das draggable-Attribut auf true:
Was gezogen wird - ondragstart und setData()
Dann geben Sie an, was geschieht, wenn das Element gezogen wird.
Im obigen Beispiel ruft das ondragstart-Attribut eine Funktion auf, drag(event), die die Daten angibt, die gezogen werden.
Die Methode dataTransfer.setData() legt den Datentyp und den Wert der gezogenen Daten fest:
{
ev.dataTransfer.setData("Text",ev.target.id);
}
Text steht für den Typ der Daten, die dem gezogenen Objekt hinzugefügt werden. Der Wert ist die id des draggable-Elements ("drag1").
Wohin ablegen - ondragover
Das ondragover-Ereignis gibt an, wo die gezogenen Daten platziert werden sollen.
Standardmäßig können Daten oder Elemente nicht in andere Elemente platziert werden. Um das Platzieren zu ermöglichen, müssen wir die Standardbehandlung des Elements verhindern.
Dies erfolgt durch Aufrufen der Methode event.preventDefault() des ondragover-Ereignisses:
Drop - ondrop
Beim Ablegen der gezogenen Daten tritt das Drop-Ereignis auf.
Im obigen Beispiel ruft das ondrop-Attribut eine Funktion auf, drop(event):
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
Code-Erklärung:
- preventDefault() wird aufgerufen, um die Standardbehandlung der Daten durch den Browser zu vermeiden (das Standardverhalten des Drop-Ereignisses ist das Öffnen des Links).
- Verwenden der Methode dataTransfer.getData("Text"), um die gezogenen Daten abzurufen. Diese Methode gibt alle Daten desselben Typs zurück, die in der Methode setData() festgelegt wurden.
- Die gezogenen Daten sind die ID des gezogenen Elements ("drag1").
- Das gezogene Element an das Zielelement (das Drop-Ziel) anhängen.
Weitere Beispiele
Bilder hin- und herziehen
Wie man Bilder zwischen zwei <div>-Elementen zieht.