In diesem Artikel wird hauptsächlich die einfache Implementierung von Vue Drag & Drop wie folgt vorgestellt: Rendern Es werden keine Duplikate festgestellt und alte Daten nicht gelöscht. Datenkörper <MyShuttle:dataOrigin='[ { Name: "Daten 001", ID: "Nummer 001", }, { Name: "Daten 002", ID: "Nummer 001", }, { Name: "Daten 003", ID: "Nummer 001", }]' :Leerzeichen='[{ Name:"Rechts 001", ID:"Rechts 001", }]' /> Code draggable Draggable aktivieren @dragenter.prevent @dragover.prevent // Verhindern Sie, dass der Browser dieses Verhalten standardmäßig verwendet, da sonst ein Kreuz angezeigt wird, was nicht schön ist. Verhindern von Standardverhalten @dragleave.stop="dragleave($event, 'main')" Das Betreten und Verlassen des aktuellen Elements löst @dragend.stop="dragEnd($event, item)" Den Drag-Content-Trigger löschen Ziehen von Ereignissen und Eigenschaften Markieren Sie „Das ist sehr wichtig!!!“ Dadurch wird das Verhalten des Drag-Ereignisses bestimmt. Wenn Sie mit dem Ziehen beginnen, wird die Stelle, auf die Sie mit der Maus geklickt haben, als Markierung verwendet. H5 Drag-Attribut ziehbar draggable: Wenn ein Element ziehbar sein muss, muss es auf true gesetzt werden. Der Standardwert ist false. Ausgewählte Texte, Bilder und Links können standardmäßig gezogen werden. Wenn die Maus zum Ziel-Div-Feld bewegt wird, wird es hinzugefügt. Das einfache Beispiel kann das Problem am besten veranschaulichen. <Vorlage> <div Klasse="MeinShuttle"> <div Klasse="MeinShuttleLeft"> <div class="title">Datenquelle</div> <div Klasse = "dataBox" @dragleave.stop = "dragleave($event, 'main')"> <div v-for="(item, i) in dataOrigin" :key="i" class="dataList" ziehbar @dragenter.prevent @dragover.prevent @dragstart.stop="dragstart($event, item)" @dragend.stop="dragEnd($event, item)"> {{ item.Name}} </div> </div> </div> <div Klasse="MyShuttleCenter"></div> <div Klasse="MeinShuttleRechts"> <div class="title">Datenquelle</div> <div ref="MyShuttleRight" class="dataBox"> <div v-for="(item, i) in spaceList" :key="i" class="dataList" ziehbar @dragenter.prevent @dragover.prevent> {{ item.Name}} </div> </div> </div> </div> </Vorlage> <Skript> Standard exportieren { Name: '', Komponenten: {}, Requisiten: { Datenursprung: { Typ: Array }, Raum: { Typ: Array } }, Daten() { zurückkehren { Raumliste: dieser.Raum, isDragStatus: false } }, berechnet: {}, betrachten: {}, erstellt() { }, montiert() { }, Methoden: { dragleave(e, Element) { // konsole.log(e, Element) wenn (Element === 'Haupt') { this.isDragStatus = true } anders { this.isDragStatus = false } // konsole.log(dies.istDragStatus) }, dragstart(e, Element) { // konsole.log(e, Element) }, dragEnd(e, Element) { const top = this.$refs.MyShuttleRight.getBoundingClientRect().top const right = this.$refs.MyShuttleRight.getBoundingClientRect().right const bottom = this.$refs.MyShuttleRight.getBoundingClientRect().bottom const left = this.$refs.MyShuttleRight.getBoundingClientRect().left console.log(oben, rechts, unten, links) console.log(e.clientX, e.clientY, Element) if (this.isDragStatus && e.clientY > oben && e.clientY < unten && e.clientX > links && e.clientX < rechts) { this.spaceList.push(Element) Konsole.log(diese.spaceList.indexOf(Element)) } } } } </Skript> <style scoped lang="scss"> .MeinShuttle { Breite: 100 %; Höhe: 308px; Anzeige: Flex; Inhalt ausrichten: Abstand dazwischen; // Gemeinsamer Stil für linke und rechte Boxen.MyShuttleLeft, .MeinShuttleRechts { Rand: 1px durchgezogen #dddddd; Rahmen-Zusammenbruch: Zusammenbruch; .Titel { Box-Größe: Rahmenbox; Breite: 100 %; Höhe: 40px; Hintergrund: #f5f5f5; Rahmenradius: 4px 4px 0px 0px; Rahmen unten: 1px durchgezogen #dddddd; Polsterung: 10px 16px; Schriftgröße: 14px; Schriftfamilie: PingFangSC-Regular, PingFang SC; Schriftstärke: 400; Farbe: #333333; Zeilenhöhe: 20px; } .dataBox { Breite: 100 %; Höhe: 228px; Überlauf: automatisch; Polsterung: 6px 0; .Datenliste { Breite: 96%; Höhe: 40px; Box-Größe: Rahmenbox; Schriftgröße: 14px; Schriftfamilie: PingFangSC-Regular, PingFang SC; Schriftstärke: 400; Farbe: #666; Zeilenhöhe: 20px; Rand: 0,2 % 10px; Polsterung: 10px 16px; Rand: 1px durchgezogen #ddd; Rahmenradius: 4px; Benutzerauswahl: keine; Cursor: Zeiger; &:schweben { Farbe: #01bc77; Hintergrund: rgba(1, 188, 119, 0,1); } } } } .MeinShuttleLeft { Breite: 362px; Höhe: 100%; Hintergrund: #ffffff; Rahmenradius: 4px; } .MyShuttleCenter { Breite: 64px; Höhe: 100%; } .MeinShuttleRechts { Breite: 362px; Höhe: 100%; Hintergrund: #ffffff; Rahmenradius: 4px; } } </Stil> Dies ist das Ende dieses Artikels über die einfache Implementierung der Vue-Drag-and-Drop-Ergänzung. Weitere relevante Inhalte zur Vue-Drag-and-Drop-Ergänzung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Das Laufschrift-Tag in HTML erzielt einen nahtlosen Laufschrift-Effekt
>>: Erfahren Sie mehr über MySQL-Datenbanken
Inhaltsverzeichnis Problemumgehung Warum kann ich...
<br />Wenn Sie Musik in eine Webseite einfüg...
Jeder kennt das Meta-Tag im Weblayout von Desktop...
Dockerfile ist eine Textdatei, die Anweisungen en...
Schritte zum Konfigurieren des Whitelist-Zugriffs...
In MySQL häufig verwendete Abfragebefehle: mysql&...
MySQL5.6 So erstellen Sie SSL-Dateien Offizielle ...
Inhaltsverzeichnis Vorwort Rendern setTable-Kompo...
Wir können jsx/tsx-Dateien direkt erstellen Die P...
Dieser Artikel stellt die Methode zur Implementie...
Inhaltsverzeichnis Vor der Transformation: Nach d...
Verwandte Artikel: Anfänger lernen einige HTML-Ta...
Vor Kurzem habe ich mit shake.js eine ähnliche Fu...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Vorwort Hauptimplementierungsc...