JavaScript zum Erzielen eines einfachen Drag-Effekts

JavaScript zum Erzielen eines einfachen Drag-Effekts

In diesem Artikel wird der spezifische JavaScript-Code zur Erzielung eines einfachen Drag-Effekts als Referenz bereitgestellt. Der spezifische Inhalt ist wie folgt

Schauen wir uns zunächst die Auswirkungen der Implementierung an:

Idee: Es werden drei Ereignisse verwendet: Mausklick-, Mausbewegungs- und Mausloslassen-Ereignisse

Erstellen Sie also zuerst die Box und geben Sie ihr einen CSS-Stil

HTML:

//html
<div>
    <p>Ich bin eine blaue Box</p>
</div>

CSS:

CSS
*{Rand: 0;Padding: 0;}
        div{
            Breite: 100px;
            Höhe: 100px;
            Hintergrundfarbe: Kornblumenblau;
            Position: absolut;
        }
        P{
            Breite: 100px;
            Höhe: 100px;
            Zeilenhöhe: 100px;
            Schriftgröße: 10px;
            Farbe: #fff;
            Textausrichtung: zentriert;
            Übergang: 0,5 s alles;
        }
        p:hover{
            transformieren: übersetzenY(-5px);
            Übergang: 0,5 s alles;
            Box-Schatten: 10px 10px 5px grau;
}

Legen Sie dann die entsprechende Methode in JS fest

var div = document.querySelector('div');
        var p = document.querySelector('p');
        //Zuerst die Variablen x und y definieren und initialisieren
        var x =0;
        var y = 0;
        // var i = 3;
        var TorF = false;
        //Der Text im Feld kann nicht ausgewählt werden div.onselectstart = function (e) {
            gibt false zurück;
        }
        div.addEventListener('mousedown',Funktion(e){
            // Client: Gib die Koordinaten des Mauszeigers aus, wenn die Maustaste gedrückt wird x = e.clientX;
            y = e.ClientY;
            // Format: obj.offsetLeft: Linken und oberen Offset abrufen // Besonderer Hinweis hierzu: Diese Eigenschaft ist schreibgeschützt und ihr kann kein Wert zugewiesen werden.
            // Gibt den Abstand zwischen dem aktuellen Element und der linken Seite des übergeordneten Elements (Body) zurück. // Hier deklarieren l und t keine globale Variable, sondern erstellen eine Eigenschaft eines globalen Objekts.
            l = div.OffsetLinks;
            t = div.OffsetTop;
            // Mauseinstellungen Pfeil bewegen div.style.cursor = 'move';
            p.innerHTML = 'Ich wurde gedrückt ^_^';
            TorF=wahr;
        });
        // Wenn der gesamte Bildschirm ein Bewegungsereignis auslöst document.addEventListener('mousemove',function(e){
            // Wenn es falsch ist, beende die Ausführung der Funktion und gib den Funktionswert zurück, wenn (Torf == false) {
                zurückkehren; 
            }
            //Definieren Sie lokale Variablen in dieser Funktion var twox = e.clientX;
            var twoy = e.clientY;
            //Verwende die ermittelten Koordinaten des Mauszeigers - (die Koordinaten des Mauszeigers - der Offset) = die tatsächliche Position des Mauszeigers //Die Einheit px muss am Ende hinzugefügt werden, da die ursprüngliche Erfassung keine Einheit hat var twol = twox - (xl);
            var twot = twoy - (yt); 
            div.style.left = zweil+'px';
            div.style.top = twot+'px';
            p.innerHTML = 'Ich werde geschleift-.-';
        });
        div.addEventListener('mouseup',Funktion(){
            // Mausbewegungsereignisse stoppen, wenn die Tastatur losgelassen wird. TorF= false;
            // Die Maus stellt den Standardstil wieder her div.style.cursor = 'default';
            p.innerHTML = „Ich wurde zurückgewiesen, QAQ“;
 })

Beachten:

1. Wenn Sie die Position einer Box steuern möchten, müssen Sie der Box eine Positionierung hinzufügen, sonst bewegt sich die Box nicht

2. Die Eigenschaft „offsetLeft“ ist schreibgeschützt und ihr kann kein Wert zugewiesen werden.

3. Berechnung der Mausposition: Mauszeigerkoordinaten - (Mauszeigerkoordinaten - Offset) = tatsächliche Mauszeigerposition

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:
  • Allgemeine Array-Operationen in JavaScript
  • Eine einfache und eingehende Studie zu Async und Await in JavaScript
  • JavaScript-Implementierung des klassischen Schlangenspiels
  • Javascript-Grundlagen zu integrierten Objekten
  • Detaillierte Erläuterung des JavaScript-Betriebsmechanismus und eine kurze Diskussion über Event Loop
  • Vergleich zwischen Python-Coroutinen und JavaScript-Coroutinen
  • JavaScript zum Erreichen eines Mouse-Tailing-Effekts
  • Detaillierte Erklärung der JavaScript-Array-Deduplizierung
  • JavaScript zur Implementierung des Flugzeugkriegsspiels
  • JavaScript-Lösung für die Setinterval-Verzögerung um eine Sekunde
  • Detaillierte Erläuterung des Falls des JavaScript-Upload-Dateilimitparameters
  • Ein kurzer Vortrag über die Variablenförderung in JavaScript
  • Tiefgreifendes Verständnis des Ereignisausführungsmechanismus von JavaScript
  • 8 wichtige JavaScript-Codefragmente für Ihr Projekt

<<:  Zusammenfassung der Ausnahmen bei der MySQL-Datenbankverbindung (sammelwürdig)

>>:  So erstellen Sie eine Ansicht in MySQL

Artikel empfehlen

CSS fügt Scroll zu Div hinzu und verbirgt die Bildlaufleiste

CSS fügt dem div Scrollen hinzu und verbirgt die ...

So aktivieren Sie das langsame Abfrageprotokoll in MySQL

1.1 Einleitung Durch Aktivieren des Slow Query Lo...

Sammlung von MySQL-Fuzzy-Abfrageanweisungen

SQL-Fuzzy-Abfrageanweisung Die allgemeine Fuzzy-A...

Verwendung des Linux-Telnet-Befehls

1. Einleitung Der Befehl Telnet dient zur Anmeldu...

Ausführliche Erklärung des Maximalwerts von int in MySQL

Einführung Ich werde ausführlich über das Problem...

Lösung für MySQL-Fehlercode 1862 Ihr Passwort ist abgelaufen

Der Blogger hat MySQL ein oder zwei Monate lang n...

Spezifische Verwendung von Lazy Loading und Preloading in js

Verzögertes Laden (Lazy Loading) und Vorladen sin...

So verwenden Sie Docker zum Erstellen eines privaten pypi-Repositorys

1. Konstruktion 1. Bereiten Sie die Datei htpassw...

Implementierung der Kommunikation zwischen Vue und Flask

axios installieren und Kommunikation implementier...

Zwei Lösungen für das 404-Problem beim Aktualisieren des Vue-Paket-Upload-Servers

1: Nginx-Serverlösung, ändern Sie die .conf-Konfi...