Modernes Webdesign

Standardverhalten unterdrücken

9.9.2011 von Anna Kobylinska und Filipe Pereira Martins

ca. 1:40 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

Zur visuellen Unterscheidung zwischen dem aktiven und inaktiven Zustand des betroffenen Elementes entsteht erst einmal eine neue CSS-Regel wie diese:

.spalte.over {
border: 2px dashed #000;
}

Das Verhalten in Bezug auf visuelles Feedback definiert der JavaScript-Code 1, den Sie ebenfalls zum Download unter www.internet-magazin.de finden. Für jeden Ereignistyp ändern sich hierbei this.target und e.target in Abhängigkeit von der aktuellen Phase der Ereignisauswertung.

Standardverhalten unterdrücken

Für einige Elementtypen wie eine Verknüpfung gilt es, das Standardverhalten des Browsers zu unterdrücken, damit dieses nicht mit dem Drag-und-Drop-Vorgang interferieren kann. Beim Mauskontakt mit einem Weblink soll der Browser diesen ignorieren, statt ihm wie gewohnt zu folgen. Hierzu wird e.preventDefault() im Ereignishandler für das dragover-Ereignis aufgerufen und zusätzlich mittels:

return false
image.jpg
Drag-und-Drop auf Basis von reinem HTML5 in Aktion.
© Internet Magazin

der false-Wert zurückgeliefert. Um die over-Klasse ein- und auszuschalten, kommt dragenter statt dragover ins Spiel. Beim Einsatz von dragover würde die CSS-Klasse mehrmals erzeugt und entfernt werden, denn der dragover-Ereignislistener würde das Hin-und-her-Schweben der Maus über den Spalten kontinuierlich auswerten und die Rendering-Engine des Browsers mit einer hohen Anzahl überflüssiger Redraws belasten.Zum Hinzufügen und Entfernen der benötigten Klasse können Sie entweder die Element.classList-API (die leider noch nicht auf breite Unterstützung durch Browser verweisen kann) oder eine Bibliothek wie jQuery einspannen oder aber alternativ eigene jQuery-artige Helferklassen definieren, etwa mit Prototype.

Vervollständigen des Vorgangs

Um das abschließende drop-Ereignis (das Loslassen des betreffenden Elementes) auszuwerten, benötigt man einen passenden Ereignislistener sowohl für ein drop- als auch für ein dragend-Ereignis. Der Ereignishandler für die dragend-Ereignisse entfernt die over-Klasse von jedem Element.Um unerwünschte Redirects zu verhindern, muss der zugehörige Ereignishandler das Standardverhalten des Browsers für drop-Ereignisse unterdrücken. Um das so genannte Event Bubbling in der DOM-Struktur zu verhindern, kommt die Methode e.stopPropagation() zum Einsatz. Der resultierende Quelltext sieht wie folgt aus:

function handleDrop(e) {
// aktuelles Zieleelement
if (e.stopPropagation) {
e.stopPropagation(); // verhindert
eine Umleitung
}
// betr. DataTransfer-Objekt
return false;
}
function handleDragEnd(e) {
// Ausgangsknoten
[].forEach.call(cols, function
(col) {
col.removeClassName('over');
this.style.opacity = '1'; this.style.
opacity = '1'; // Opazitaet zuruecksetzen
});
}

Schließlich werden alle Ereignislistener ihrem jeweiligen Ereignistyp zugewiesen:

var cols = document.querySelectorAll
('#spalten .spalte');
[].forEach.call(cols, function(col) {
col.addEventListener('dragstart',
handleDragStart, false);
col.addEventListener('dragenter',
handleDragEnter, false)
col.addEventListener('dragover',
handleDragOver, false);
col.addEventListener('dragleave',
handleDragLeave, false);
col.addEventListener('drop',
handleDrop, false);
col.addEventListener('dragend',
handleDragEnd, false);
});

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.