Modernes Webdesign

Drag-und-Drop mit HTML5

9.9.2011 von Anna Kobylinska und Filipe Pereira Martins

Website-Besucher haben sich bereits an Drag-und-Drop-Fähigkeiten sowohl bei Desktop- als auch mobilen Applikationen gewöhnt. Da sollten Webauftritte nicht mehr hintenanstehen müssen.

ca. 2:30 Min
Ratgeber
VG Wort Pixel
  1. Drag-und-Drop mit HTML5
  2. Ereignisse eines Vorgangs
  3. Standardverhalten unterdrücken
  4. Das dataTransfer-Objekt
  5. Upload von Dateien
internet, webdesign, drag-und-drop, applikationen, css, html5
Drag-und-Drop mit HTML5
© Internet Magazin

Praktisch in allen gängigen Webbrowsern kann der Benutzer eine Textauswahl sowie img- und anchor-Elemente, die über ein href-Attribut verfügen, per Drag-und-Drop auf den Desktop ziehen. Greift der Benutzer ein Bild und zieht es aus der Webseite heraus, lässt sich dieses in der Adressleiste als ein Element vom Typ <input type="file"/> oder auf dem Desktop als eine Bilddatei ablegen. Diese Funktionalität hat natürlich nichts mit HTML5 zu tun, sie demonstriert aber, dass Drag-und-Drop-Fähigkeiten im Browser gefragt und daraus nicht mehr wegzudenken sind.Die Drag-und-Drop-Funktionalität in Webseiten ließ sich zuvor mit JavaScript-Bibliotheken umsetzen, doch der erhebliche Aufwand machte diese Lösung nicht sonderlich populär. Mit HTML5 könnte sich dies nun endgültig ändern.Die HTML5-Spezifikation definiert einen ereignisbasierten Mechanismus, eine JavaScript-API und zusätzliches Markup, mit deren Hilfe fast jedes beliebige Seitenelement drag-und-drop-fähig gemacht werden kann. Anwendungsbereiche für Drag-und-Drop gibt es mehr als genug. Von Widgets in einem CMS, die sich durch den Besucher neu anordnen lassen, über einen BTO-Bestellungsassistenten für Waren, einen interaktiven Warenkorb mit Produkten zum Anfassen bis hin zu Online-Spielen sind die Einsatzmöglichkeiten sehr breit gefächert.Die Bedeutung von Drag-und-Drop für die Bedienungsfreundlichkeit einer Webapplikation lässt sich am Beispiel eines Online-Schachspiels verdeutlichen. Dank Drag-und-Drop-Unterstützung im Browser müsste der Benutzer die Schachzüge nicht mehr per Schachnotation eingeben. Ein wirklich unterhaltsames Schachspiel per Tastatureingabe der Anfangs- und Zielposition von Schachfiguren wäre kaum vorstellbar, wenn man doch so leicht zur Maus greifen kann.

Website-Inhalte kennzeichnen

Einige HTML-Elemente wie anchor und img sind von sich aus drag-und-drop-fähig. Anderen Elementen muss man diese Möglichkeit durch die explizite Zuweisung der Eigenschaft draggable="true"

<div draggable="true"></div>

und das Anfügen einer passenden CSS-Regel für den jeweiligen Browser erst einmal beibringen:

[draggable] {
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
}
internet, webdesign, drag-und-drop, applikationen, css, html5
Drei DOM-Elemente, die bereits als Drag-und-Drop-fähig gekennzeichnet sind, obwohl sie sich noch nicht verschieben lassen.
© Internet Magazin

Mit diesem Code können Sie sicherstellen, dass Textinhalte in drag-fähigen Elementen durch den Besucher nicht mehr ausgewählt werden können, sodass einem Drag-und-Drop-Vorgang nichts im Wege steht.Fast jedes beliebige HTML5-Element, darunter ein Bild, eine Liste, ein Weblink oder ein anderer Ausschnitt des HTML-Markups, kann mittels Drag-und-Drop gehandhabt werden. Im Gegensatz dazu gibt es bei der Wahl der so genannten Drop-Zone, welche die Daten entgegennimmt, deutlich weniger Freiheiten. So eignet sich für diese Aufgabe ein Bild zum Beispiel nicht, wohl aber ein div-Kasten. Das Markup

<div id="spalten"><div class="spalte warenkorb"
draggable="true"><header>Warenkorb</header></div><div class="spalte favoriten"
draggable="true"><header>Favoriten</header></div><div class="spalte zuletzt"
draggable="true"><header>Zuletzt gesehen</header></div></div>

erzeugt drei Layout-Kästen, die sich mit der Maus anfassen lassen.

Der CSS-Code 1 per Download von www.internet-magazin.de stellt die obigen Textkästen als Spalten dar.Zusätzlich benötigt man den zuvor erwähnten CSS-Regelsatz für den Selektor [draggable]. Durch die Zuweisung des Attributs

cursor: move;

zu allen Elementen der Klasse "spalte" erhält der Besucher einen visuellen Anhaltspunkt. Durch den Wechsel der Form des Mauszeigers beim Kontakt mit dem jeweiligen Element wird verdeutlicht, dass die Spalten beweglich und damit auch drag-und-drop-fähig sind.

Mehr lesen

Chronologische Liste und Netflix-Links

Marvel-Filme- und -Serien: Das ist die richtige Reihenfolge

Neuerscheinungen in der Übersicht

Netflix: Neue Filme und Serien

Vorschau auf Film- und Serien-Highlights

Amazon Prime Video: Neuheiten

Weiter zur Startseite  

Mehr zum Thema

internet, webdesign, adobe,  Illustrator, CS6

Webdesign

Webdesign in Adobe Illustrator CS6

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.

Facebook stellte die neue Suche

Facebook

Facebooks Social Graph Search

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?

Der BGH erklärt das Internet zur Lebensgrundlage.

Online-Recht

Darauf müssen Sie bei den AGB achten

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.

Online-Urheberrecht: Unser Ratgeber bietet Tipps für das Cloud-Recht.

Online-Recht in der Cloud

Wie sieht das Urheberrecht in der Wolke aus?

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…

Logistik im E-Commerce: Prozesse rund um die Logistik.

E-Commerce-Logistik

Logistik im E-Commerce

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.