Wie implementiert JavaScript die Drag-and-Sort-Funktion von Seitenelementen?

PHPz
Freigeben: 2023-10-20 12:28:47
Original
882 Leute haben es durchsucht

JavaScript 如何实现页面元素的拖动排序功能?

Wie implementiert JavaScript die Drag-and-Sort-Funktion von Seitenelementen?

In der modernen Webentwicklung ist die Drag-Sortierung eine sehr verbreitete Funktion, die es Benutzern ermöglicht, ihre Position auf der Seite durch Ziehen von Elementen zu ändern. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript die Drag-and-Sort-Funktion von Seitenelementen implementieren, und es werden spezifische Codebeispiele bereitgestellt.

Die Grundidee der Implementierung der Drag-Sorting-Funktion ist wie folgt:

  1. Erstellen Sie zunächst Elemente, die Drag-Sortierung in HTML erfordern, z. B. eine Reihe von Divs.

    元素1
    元素2
    元素3
    元素4
    Nach dem Login kopieren
  2. Verwenden Sie CSS, um diese Elemente als ziehbar festzulegen:

    .sortable { cursor: grab; }
    Nach dem Login kopieren
  3. Binden Sie Ereignis-Listener an jedes ziehbare Element, um auf Drag-Start-, Drag-Prozess- und Drag-End-Ereignisse zu warten:

    const sortables = document.querySelectorAll('.sortable'); let draggingElement = null; sortables.forEach(sortable => { sortable.addEventListener('dragstart', dragStart); sortable.addEventListener('dragover', dragOver); sortable.addEventListener('dragend', dragEnd); });
    Nach dem Login kopieren
  4. Speichern Sie das gezogene Element im Drag-Start-Ereignis und legen Sie den Drag-Effekt fest:

    function dragStart(e) { draggingElement = this; this.classList.add('dragging'); e.dataTransfer.effectAllowed = 'move'; e.dataTransfer.setData('text/html', this.innerHTML); }
    Nach dem Login kopieren
  5. Stoppen Sie das Standardverhalten im Drag-Prozess-Ereignis und legen Sie den Drag-Effekt fest:

    function dragOver(e) { e.preventDefault(); this.classList.add('dragover'); e.dataTransfer.dropEffect = 'move'; }
    Nach dem Login kopieren
  6. in Aktualisieren Sie die Elementposition im Drag-End-Ereignis und entfernen Sie Drag-bezogene Stile :

    function dragEnd(e) { this.classList.remove('dragging', 'dragover'); const dropzone = document.querySelector('.dragover'); if (dropzone && dropzone !== this) { const parentNode = this.parentNode; parentNode.insertBefore(this, dropzone.nextSibling); } draggingElement = null; }
    Nach dem Login kopieren

Mit dem obigen Code können wir eine einfache Drag-and-Sort-Funktion für Seitenelemente implementieren. Wenn der Benutzer ein Element zieht, passen andere Elemente automatisch ihre Positionen an, sodass Elemente neu angeordnet werden können.

Im obigen Beispiel haben wir die HTML5-Drag-and-Drop-API verwendet, um die Drag-Sortierfunktion zu implementieren. Die Drag-and-Drop-API umfasst eine Reihe von Drag-and-Drop-bezogenen Ereignissen und Methoden, die uns dabei helfen, Drag-and-Drop-Vorgänge für Elemente durchzuführen.

Es ist zu beachten, dass der Code im obigen Beispiel lediglich die Drag-Sortierfunktion implementiert. In tatsächlichen Anwendungen müssen möglicherweise einige besondere Umstände berücksichtigt werden, z. B. das Sortieren einer großen Anzahl von Elementen, das Sortieren verschachtelter Elemente usw. Darüber hinaus müssen Entwickler aufgrund der unterschiedlichen Kompatibilität von Drag-and-Drop-APIs in verschiedenen Browsern möglicherweise eine Kompatibilitätsverarbeitung durchführen.

Zusammenfassend lässt sich sagen, dass JavaScript die Drag-and-Sort-Funktion von Seitenelementen über die Drag-and-Drop-API implementieren kann. Ich hoffe, die obigen Beispiele sind hilfreich für Sie!

Das obige ist der detaillierte Inhalt vonWie implementiert JavaScript die Drag-and-Sort-Funktion von Seitenelementen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!