Zurück zum Blog

Erstellen von Drag-and-Drop-Elementen mit reinem Vanilla-JavaScript

Erstellen von Drag-and-Drop-Elementen mit reinem Vanilla-JavaScript

JavaScript ist eine der beliebtesten Programmiersprachen, die mit mehr als 24 Frameworks und rund 84 Bibliotheken ausgestattet ist. Sie ist die einzige Programmiersprache, die von allen Browsern von Natur aus unterstützt wird. Zudem unterstützt die Sprache die dynamische Typisierung und eignet sich hervorragend für Rendering und Animationen. Sie können JavaScript nutzen, um interaktives Verhalten im Frontend hinzuzufügen, das Backend zu steuern, Web- und Mobilanwendungen zu erstellen und vieles mehr. Die Möglichkeit, Effekte zu jeder Website hinzuzufügen und sie anpassbar zu machen, macht die Sprache weltweit zu einem Favoriten unter Entwicklern.

In dieser Anleitung werden wir Sie durch die Schritte zur Erstellung von Drag-and-Drop-Elementen mit reinem Vanilla JavaScript führen. Darüber hinaus werden wir einen Schritt weiter gehen und eine „Morning Scheduler“-App mithilfe der HTML Drag and Drop API-Event-Handler erstellen.

Voraussetzungen

Um diesem Tutorial folgen zu können, müssen Sie über Folgendes verfügen:

  • Grundlagen von JavaScript.
  • Ein Einblick in HTML und CSS ist von großem Vorteil.

Schritt 1: Ein neues Projekt erstellen

Beginnen Sie mit der Erstellung eines Containers mit zwei Kindelementen. Wir werden das erste Kindelement zum Ziehen und das zweite Kindelement zum Speichern der gezogenen Elemente verwenden.

Hinweis: In diesem Tutorial betrachten wir Container als Speicher, um alle gezogenen Elemente aufzubewahren. Einfach ausgedrückt werden alle aus dem ersten Kindelement gezogenen Elemente im zweiten Kindelement abgelegt.

Verwenden Sie als Nächstes den cd-Befehl, um das Verzeichnis in den Ordner drag-and-drop-demo  Ordner zu wechseln:

Schritt 2: Erste Einrichtung

In diesem Tutorial werden wir HTML-, CSS- und JavaScript-Dateien erstellen und diese miteinander verbinden. Benennen Sie die Dateien zunächst als index.html, styles.css und scripts.js (jeweils).

Fügen Sie als Nächstes den Titel „My Morning Planner“ in der index.html -Datei hinzu:

Verknüpfen Sie als Nächstes CSS und fügen JavaScript zu HTML hinzu:

Jetzt erstellen wir einen ersten Container und fügen das Element hinzu, das wir per Drag-and-Drop verschieben möchten. Achten Sie darauf, das Attribut draggable="true", und fügen Sie die Liste der Elemente hinzu, die Sie ziehen oder ablegen möchten.

Fügen Sie als Nächstes die folgenden Codezeilen in den <body>-Tags ein:

Speichern und schließen Sie die index.html-Datei. Versuchen Sie danach, die index.html-Datei in Ihrem Browser zu öffnen, und Sie werden sehen, wie sich eine Seite öffnet:

Als Nächstes wollen wir unser index.html mit CSS gestalten und ansprechend aussehen lassen.

Schritt 3: Gestaltung mit CSS

Fügen Sie als Nächstes Stile für alle Elemente hinzu, die wir in unserer index.html-Datei eingefügt haben:

Versuchen Sie, die index.html-Datei in Ihrem Browser zu öffnen und das Ergebnis zu sehen:

Creating Drag and Drop Elements with Pure, Vanilla JavaScript 1

Obwohl wir die Strukturierung abgeschlossen und Stile hinzugefügt haben, sind die Elemente immer noch statisch. Das bedeutet, dass wir Elemente nicht bewegen oder scrollen können, bis wir ihnen dynamische Funktionen hinzufügen. Im nächsten Schritt führen wir JavaScript und dynamische Verhaltensweisen ein.

Schritt 4: Einführung in JavaScript

In diesem Schritt werden wir JavaScript einführen und alle Drag-Elemente funktionsfähig machen. Richten Sie in der JS-Datei die Elemente ein, die wir benötigen werden. Lassen Sie uns draggable und containers definieren, um Elemente zu ziehen bzw. abzulegen.

Fügen Sie die zwei Codezeilen in der scripts.js-Datei hinzu:

Richten Sie als Nächstes alle Event-Listener ein. Beginnen Sie mit dem Hinzufügen des dragstart-Elements als ersten Event-Listener, um add zur Klassenliste hinzuzufügen. Fügen Sie in ähnlicher Weise das dragend-Element als zweiten Event-Listener hinzu, um remove aus der Klassenliste zu entfernen.

Fügen Sie die folgenden EventListeners in Ihrer scripts.js-Datei hinzu:

Fügen Sie als Nächstes den dragover EventListener für das Hovern und Bewegen unserer Elemente hinzu. Setzen Sie das aktuelle draggable-Element mithilfe von querySelector und hängen Sie dann das ziehbare Element an den aktuellen Container an:

Standardmäßig ist das Ablegen innerhalb eines Elements deaktiviert. Verwenden Sie e.preventDefault, um es zu aktivieren:

Erstellen Sie als Nächstes ein Element, um die Mauspositionierung zu bestimmen. Beginnen Sie mit dem Erstellen einer Funktion getDragAfterElement, die zwei Parameter entgegennimmt. Der erste ist ein container und der zweite Parameter y kümmert sich um die vertikale Position der Maus. Verwenden Sie nun die Funktion querySelectorAll, um unsere ziehbaren Elemente abzurufen. Definieren Sie draggableElements für alle ziehbaren Elemente innerhalb des Containers:

Rufen Sie als Nächstes eine reduce-Funktion auf, die die Liste der ziehbaren Elemente durchläuft und auch das einzelne Element nach dem Mauszeiger bestimmt. Als Nächstes return Sie die reduce-Funktion zurück, indem Sie das erste Element als closest und das zweite als child hinzufügen. Setzen Sie außerdem den offset gleich und fügen Sie Bedingungen hinzu.

Fügen Sie die folgenden Codezeilen in die scripts.js-Datei ein:

Im letzten Teil werden wir Bedingungen festlegen und die AfterElements überprüfen. Überprüfen Sie die AfterElements mithilfe von if-else-Bedingungen, und wenn sie auf null gesetzt ist, hängen Sie ein Kindelement am Ende der Liste an, indem Sie appendChild verwenden. Andernfalls fügen Sie das Element draggable und afterElement als Parameter in der insertBefore -Funktion hinzu.

Fügen Sie dies in die scripts.js -Datei ein:

Jetzt haben wir die notwendigen Vorbereitungen getroffen. Öffnen Sie Ihren Browser und führen Sie index.html in Ihrem Browser aus. Sie sehen die Seite „My Morning Scheduler“ mit Optionen zum Drag-and-Drop. Die weiße Linie in der Mitte fungiert als Brücke, um zwischen den bereits erledigten Aufgaben und den noch zu erledigenden Aufgaben zu unterscheiden:

Fazit

Drag-and-Drop ist eine hervorragende Option für moderne Websites. In dieser Anleitung haben wir eine Handvoll Event-Handler verwendet, um das Tutorial für Anfänger einfach zu gestalten. Insgesamt gibt es acht Event-Handler, und wir ermutigen Sie, diese im weiteren Verlauf zu nutzen. Sobald Sie sich mit den Funktionen und dem in diesem Tutorial verwendeten Code vertraut gemacht haben, können Sie tiefer in JavaScript-Themen wie jQuery eintauchen und mit dem Erkunden beginnen. Sie können auch versuchen, eine To-Do-App oder einen wöchentlichen Fortschritts-Tracker mithilfe von JavaScript-Datums- und Zeitfunktionen, und andere Anwendungen unter Verwendung der soeben gelernten Konzepte zu erstellen.

Um mehr über JavaScript und Webentwicklungsthemen zu erfahren, lesen Sie diese Ressourcen in unserem Blog:

Fröhliches Computing!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.