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
CI/CD-Übersicht CI-Workflow-Design Das Git-Codeve...
Inhaltsverzeichnis JS liest Datei FileReader doku...
Vorwort In der Front-End-Entwicklung müssen Sie h...
1. Prozentuale Basis für Elementbreite/-höhe/-pol...
Inhaltsverzeichnis Vorwort 1. Anwendungskomponent...
1.Service-Befehl Der Servicebefehl geht tatsächli...
Installieren Sie mysql5.7 unter Win. Zu Ihrer Inf...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
1. Yum-Installation yum installiere Subversion 2....
Das Core Asset Management Project erfordert, dass...
Inhaltsverzeichnis Was ist natives JavaScript A. ...
Inhaltsverzeichnis 1. Kartenmethode 2. Anwendung ...
In diesem Artikel wird der spezifische Code von j...
Inhaltsverzeichnis 1. Hintergrund 2. Was ist eine...
1. Einleitung Im Projekt wird MySQL verwendet. Ic...