Die Drag-Funktion wird hauptsächlich verwendet, um Benutzern die Durchführung bestimmter benutzerdefinierter Aktionen zu ermöglichen, wie z. B. Ziehen zum Sortieren, Ziehen und Verschieben von Popup-Fenstern usw. Drag-and-Drop-Prozessaktionen1. Durch Drücken der Maus wird das Ereignis onmousedown ausgelöst 2. Mausbewegung löst das Ereignis onmousemove aus 3. Das Loslassen der Maus löst das Ereignis onmouseup aus Widerstandsprinzip1. Maus drücken + Maus bewegen = ziehen-------Ereignis bei Mausklick + bei Mausbewegung 2. Lassen Sie die Maus los = kein Ziehen -------- Beenden Sie das Ziehen bei Mauszeiger hoch 3. Mausversatz = Ziehdistanz Zeichnen Sie beim Klicken auf das DOM die aktuellen Mauskoordinaten auf, d. h. die x- und y-Werte sowie die oberen und linken Werte des gezogenen DOM, und fügen Sie der Rückruffunktion für gedrückte Maus ein Mausbewegungsereignis hinzu: document.addEventListener("mousemove", verschieben, false) Und fügen Sie das Mouse-Up-Ereignis hinzu document.addEventListener("mouseup",Funktion() { document.removeEventListener("mousemove", verschieben, false); }, FALSCH); Dieses Anhebeereignis wird verwendet, um die Überwachung der Mausbewegung abzubrechen, da das Ziehen nur erfolgen kann, wenn die Maus gedrückt wird, und die Bewegung beendet wird, wenn sie angehoben wird. Wenn die Maus gedrückt und bewegt wird, werden die x- und y-Werte der Bewegung aufgezeichnet. Anschließend lauten die oberen und linken Werte des gezogenen DOM: //Extrem einfache Version var div = document.querySelector("div"); // Beim Drücken mit dem Warten auf Mausbewegungsereignisse im Dokument beginnen // Beim Loslassen der Maus mit dem Warten beginnen // Ziehen nur beim Drücken vorbereiten div.onmousedown=function(e1){ // Wenn sich die Maus im Dokument bewegt, kann sie sich nicht auf dem div bewegen, da die Maus das div verlassen könnte, wodurch es unmöglich würde, das div zu ziehen.onmousemove=function(e){ // Wenn sich die Maus bewegt, werden die aktuellen Mauskoordinaten relativ zum Ansichtsfenster links und oben im Element zugewiesen // Da wir an der gedrückten Position ziehen müssen, müssen wir auch die Position der oberen linken Ecke der Maus relativ zum Div ermitteln, wenn die Taste gedrückt wird. // Aktuelle Mausposition abzüglich der Position der oberen linken Ecke des relativen Elements verwenden, um sicherzustellen, dass die Maus an der gedrückten Position gezogen wird. div.style.left=e.clientX-e1.offsetX+"px"; div.style.top=e.clientY-e1.offsetY+"px"; } // Wenn die Maustaste losgelassen wird, lösche das Mausbewegungsereignis und lösche das Mausloslassenereignis div.onmouseup=function(){ Dokument.onmousemove=null; Dokument.onmouseup=null; } } //Einfache Version var div = document.querySelector("div"); var OffsetX, OffsetY; div.addEventListener("mousedown",mouseDownHandler); Funktion mouseDownHandler(e){ offsetX=e.offsetX offsetY=e.offsetY document.addEventListener("Mausbewegung",MausbewegungsHandler) document.addEventListener("mouseup",mouseupHandler) } Funktion MausbewegungsHandler(e){ div.style.left=e.clientX-offsetX+"px" div.style.top=e.clientY-offsetY+"px" } Funktion mouseupHandler(e){ document.removeEventListener("Mausbewegung",MausbewegungsHandler) document.removeEventListener("mouseup",mouseupHandler) } // Einfache aktualisierte Version var div = document.querySelector ("div"); var OffsetX, OffsetY; div.addEventListener("Maus gedrückt",MausHandler); Funktion MausHandler(e){ wenn(e.type==="mousedown"){ offsetX=e.offsetX; offsetY=e.offsetY; document.addEventListener("Mausbewegung",MausHandler) document.addEventListener("Maus hoch",MausHandler) }sonst wenn(e.type==="mousemove"){ div.style.left=e.clientX-offsetX+"px" div.style.top=e.clientY-offsetY+"px" }sonst wenn(e.type==="mouseup"){ document.removeEventListener("Mausbewegung",MausHandler) document.removeEventListener("Maus hoch",MausHandler) } } Notiz a. Der Stil des gezogenen Elements muss auf eine absolute oder relative Position eingestellt werden, um wirksam zu sein. 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:
|
>>: So implementieren Sie eine geplante Sicherung von MySQL unter Linux
more ist eines unserer am häufigsten verwendeten ...
Ergebnis:Implementierungscode html <ul Klasse=...
In diesem Artikel wird der spezifische Code von j...
Inhaltsverzeichnis 1. Was ist Lazy Loading? 2. Im...
brauchen: Verwenden Sie Vue, um das Scannen von Q...
Boost installieren Es gibt viele Möglichkeiten, C...
Inhaltsverzeichnis 1. Zeitstempel bis heute 2. Ko...
Inhaltsverzeichnis Einführung Unterscheiden Sie z...
Parallelitätsfunktionen Zeit für i in `grep serve...
Inhaltsverzeichnis 1. Schnittstelle zusammenführe...
Die Wirkung ist wie folgt: Der Code lautet wie fo...
Dieser Artikel zeigt anhand eines Beispiels, wie ...
Nach der Installation von Navicat Der folgende Fe...
Inhaltsverzeichnis 1. Regel 1: Objekt.Methode() 1...
Bei der heutigen Projektoptimierung ist bei MySQL...