In diesem Artikel wird der spezifische Code zur Implementierung von Drag & Drop in objektorientierter js-Methode zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt Das Implementierungsprinzip der Drag-Funktion: (direkt wegnehmen!) <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <meta http-equiv="X-UA-kompatibel" content="ie=edge"> <title>Dokument</title> <Stil> #Kasten { Position: absolut; links: 100px; oben: 100px; Breite: 100px; Höhe: 100px; Hintergrund: rot; } #box2 { Position: absolut; links: 200px; oben: 200px; Breite: 100px; Höhe: 100px; Hintergrund: grün; } </Stil> </Kopf> <Text> <div id="box">Text</div> <div id="box2">Text</div> </body> <Skript> Klasse Ziehen { startMouse = {}; startEl = {}; #el = null; Konstruktor(el, option) { dies.#el = el; diese.option = Option; dies.start(); } Start() { lass bewegen = (e) => { dies.bewegen(e) } dies.#el.addEventListener('mousedown', (e) => { dies.startMouse = { x: e.clientX, y: e.clientY, } dies.ondragstart und dies.ondragstart(e) dies.startEl = dies.getOffset(); document.addEventListener('mousemove', bewegen); document.addEventListener('mouseup', (e) => { document.removeEventListener('mousemove', verschieben); dies.ende(e); }, { einmal: wahr }) e.preventDefault(); }) } bewegen(e) { lass jetztMouse = { x: e.clientX, y: e.clientY, } lass disMouse = { x: jetztMouse.x - diese.startMouse.x, y: jetztMaus.y - diese.startMaus.y } dies.ondrag und dies.ondrag(e) this.setOffset(disMouse) } Ende(e) { dies.ondragend und dies.ondragend(e) } getOffset() { zurückkehren { x: parseFloat(getComputedStyle(this.#el)["links"]), y: parseFloat(getComputedStyle(this.#el)["oben"]) } } setzeOffset(dis) { dies.#el.style.left = dies.startEl.x + dis.x + 'px' dies.#el.style.top = dies.startEl.y + dis.y + 'px' } } let box = document.querySelector("#box"); let box2 = document.querySelector("#box2"); lass d = neue Drag(Box); sei d2 = neues Drag(box2); lass clonex = null; d2.ondragstart = (e) => { clonex = box2.cloneNode(true); Dokument.Body.AnhängenUntergeordnetesElement(Clonex) box2.style.opacity = 0,5 } d2.ondragend = () => { Dokument.Body.RemoveChild(Clonex); box2.style.opacity = 1 } </Skript> </html> Der endgültige Effekt (der gezogene Block ist der grüne Block) Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Lösung für dieselbe IP nach dem Klonen der virtuellen Ubuntu 18-Maschine
>>: So ändern Sie das MySQL-Passwort auf dem XAMPP-Server (mit Bildern)
Inhaltsverzeichnis MySQL-Mehrversionen-Parallelit...
Der Grund dafür ist, dass alle Dateien in UTF8 kod...
Bei der Bedienung und Konfiguration von Linux wir...
Ich habe mich kürzlich auch mit der Leistungsopti...
Verwandte Artikel: Anfänger lernen einige HTML-Ta...
Um das Problem „Eingeben != Absenden“ zu implement...
MySQL bietet zwei verschiedene Versionen für unte...
1. Was sind CSS-Methoden? CSS methodologies könne...
Hallo zusammen, ich bin Liang Xu. Bei der Verwend...
In diesem Artikel erfahren Sie, wie Sie das kompr...
Mehrere Teile von Compose befassen sich in irgend...
HTML-zentrierte Front-End-Entwicklung entspricht p...
Was ist eine Transaktion? Eine Transaktion ist ei...
[Problembeschreibung] Auf der Anwendungsseite wir...
Mit REGELN kann die Art der inneren Rahmen der Ta...