JavaScript implementiert eine verschiebbare Modalbox

JavaScript implementiert eine verschiebbare Modalbox

In diesem Artikel wird der spezifische JavaScript-Code zur Implementierung eines verschiebbaren Modalfelds zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

Code:

HTML-Codeteil:

<Stil>
        * {
            Rand: 0px;
            Polsterung: 0px;
        }
        .login-header {
            Breite: 100 %;
            Textausrichtung: zentriert;
            Höhe: 30px;
            Schriftgröße: 24px;
            Zeilenhöhe: 30px;
            Cursor: Zeiger;
        }
        .Anmelden {
            Anzeige: keine;
            Breite: 500px;
            Höhe: 280px;
            Position: fest;
            Rand: 1px #ebebeb durchgezogen;
            links: 50%;
            oben: 50 %;
            Hintergrund: #fff;
            Kastenschatten: 0px 0px 20px #ddd;
            Z-Index: 999;
            transformieren: übersetzen(-50 %,-50 %);
        }
        .login-titel {
            Breite: 100 %;
            Rand: 10px 0px 0px 0px;
            Textausrichtung: zentriert;
            Höhe: 40px;
            Zeilenhöhe: 40px;
            Schriftgröße: 10px;
            Position: relativ;
            Cursor: bewegen;
        }
        .login-title span {
            Position: absolut;
            Schriftgröße: 12px;
            rechts: -20px;
            oben: -30px;
            Hintergrundfarbe: #fff;
            Rand: 1px #ebebeb durchgezogen;
            Breite: 40px;
            Höhe: 40px;
            Rahmenradius: 20px;
        }
        .login-input-content {
            Rand oben: 20px;
        }
        .login-button {
            Breite: 100px;
            Rand: 30px automatisch 0px automatisch;
            Zeilenhöhe: 40px;
            Schriftgröße: 14px;
            Rand: 1px #ebebeb durchgezogen;
            Textausrichtung: zentriert;
        }
        A {
            Textdekoration: keine;
            Farbe: #000;
        }
        .login-button a {
            Anzeige: Block;
        }
        .login-input Eingabe.Listen-input {
            schweben: links;
            Zeilenhöhe: 35px;
            Höhe: 35px;
            Breite: 350px;
            Rand: 1px #ebebeb durchgezogen;
            Texteinzug: 5px;
        }
        .login-input {
            Überlauf: versteckt;
            Rand: 0px 0px 20px 0px;
        }
        .login-input Bezeichnung {
            schweben: links;
            Breite: 90px;
            Polsterung rechts: 10px;
            Höhe: 35px;
            Zeilenhöhe: 35px;
            Textausrichtung: rechts;
            Schriftgröße: 14px;
        }
        .Anmeldemaske {
            Anzeige: keine;
            Breite: 100 %;
            Höhe: 100%;
            Position: fest;
            oben: 0px;
            links: 0px;
            Hintergrundfarbe: rgba(0, 0, 0, .3);
        }
    </Stil>
</Kopf>
<Text>
    <div class="login-header">Klicken Sie, um das Anmeldefeld anzuzeigen</div>
    <div id="Anmelden" Klasse="Anmelden">
        <div id="title" class="login-title">Mitglied anmelden<span><a id="closeBtn" class="close-login" href="javascript:void(0);" >Schließen</a></span></div>
        <div Klasse="Login-Eingabe-Inhalt">
            <div Klasse="Anmeldeeingabe">
                <label>Benutzername:</label>
                <input type="text" placeholder="Bitte geben Sie Ihren Benutzernamen ein" id="username" class="list-input">
            </div>
            <div Klasse="Anmeldeeingabe">
                <label>Anmeldekennwort:</label>
                <input type="password" placeholder="Bitte geben Sie Ihr Login-Passwort ein" id="password" class="list-input">
            </div>
        </div>
        <div id="loginBtn" class="login-button"><a id="login-button-submit" href="javascript:void(0);" >Mitglied anmelden</a></div>
    </div>
    <!-- Maskenebene-->
<div id="Maske" Klasse="Anmeldemaske"></div>

JS-Teil:

<Skript>
        // 1. Holen Sie das Element var login = document.querySelector('.login');
        var Maske = document.querySelector('.login-mask');
        var loginHeader = document.querySelector('.login-header');
        var closeBtn = document.querySelector('.close-login');
        var loginTitle = document.querySelector('.login-title');
 
        // 2. Klicken Sie auf die Anmeldeaufforderung, um Login und Maske anzuzeigen;
        loginHeader.addEventListener('klicken', function() {
            login.style.display = "Block";
            Maske.Stil.Anzeige = "Block";
        })
        // 3. Klicken Sie auf die Schaltfläche „Schließen“, um Anmeldung und Maske auszublenden.
        closeBtn.addEventListener('klicken', function() {
            login.style.display = "keine";
            Maske.Stil.Anzeige = "keine";
        })
        // 4. Ziehen Sie das Anmeldefeld // 4.1 Drücken Sie die Maus, um die Koordinaten der Maus im Feld abzurufen loginTitle.addEventListener('mousedown', function(e) {
            var x = e.pageX-login.offsetLeft;
            var y = e.pageY-login.offsetTop;
            // 4.2 Wenn sich die Maus bewegt, subtrahieren Sie die Koordinaten der Maus im Feld von den Koordinaten der Maus auf der Seite, um die linken und oberen Werte des Anmeldefelds zu erhalten. document.addEventListener('mousemove', move)
            Funktion verschieben(Ereignis) {
                login.style.left = Ereignis.SeiteX - x + 'px';
                login.style.top = event.pageY - y + 'px';
            }
            // 4.3 Wenn die Maus losgelassen wird, entferne das Move-Event document.addEventListener('mouseup', function() {
                document.removeEventListener('Mausbewegung', Bewegung)
            })
        })
</Skript>

Wirkungsdemonstration:

Ideen:

Fügen Sie dem verschiebbaren Teil ein Klickereignis hinzu. Berechnen Sie bei Auslösung die Koordinaten der Maus im verschiebbaren Teil (e.pageX - box.offsetLeft), ermitteln Sie xy und fügen Sie dann dem Dokument ein Mausbewegungsereignis hinzu, da sich die modale Box beim Ziehen mit der Maus innerhalb des gesamten DOM-Fensters bewegt. Lassen Sie die relative Position der Maus und des Modalfelds unverändert. Daher müssen Sie zu diesem Zeitpunkt die Position des Modalfelds berechnen (z. B. Seite X – x) und dann die Position des Modalfelds ändern. Wenn die Maus auftaucht, löschen Sie einfach das Bewegungsereignis.

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:
  • Ein Beispiel für das elegante Schreiben von Urteilen in JavaScript
  • 56 praktische JavaScript-Toolfunktionen zur Verbesserung der Entwicklungseffizienz
  • JavaScript zum Implementieren eines Dropdown-Listenauswahlfelds
  • JavaScript zur einfachen Verknüpfung von Provinzen und Gemeinden
  • Details zur Verwendung der JS-Tag-Syntax

<<:  HarborRestart-Vorgang nach dem Ändern der Konfigurationsdatei

>>:  MySQL Dezimalzahl unsigned Update negative Zahlen in 0 umgewandelt

Artikel empfehlen

MySQL-Triggersyntax und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

Vollständige Schritte zum Erstellen eines Passwortgenerators mit Node.js

Inhaltsverzeichnis 1. Vorbereitung 2. Befehlszeil...

Zwei Möglichkeiten zum Einführen von SVG-Symbolen in Vue

So führen Sie SVG-Symbole in Vue ein Methode 1 zu...

Vue-Projekt @change mehrere Parameter, um mehrere Ereignisse zu übergeben

Erstens gibt es nur ein Änderungsereignis. change...

Tiefes Verständnis der JavaScript-Syntax und Codestruktur

Inhaltsverzeichnis Überblick Funktionalität und L...

Eine detaillierte Einführung in die Grundlagen des Linux-Scriptings

Inhaltsverzeichnis 1. Skript-Vim-Umgebung 2. So d...

Grundlegende Implementierung der AOP-Programmierung in JavaScript

Einführung in AOP Die Hauptfunktion von AOP (Aspe...

Centos7.5 installiert die Bereitstellung des binären Pakets mysql5.7.24

1. Umweltvorbereitung: Betriebssystem: CentOS Lin...

So kompilieren und installieren Sie OpenCV unter Ubuntu

Einfache Installation von opencv2: conda installi...

js behandelt die Kontoabmeldung beim Schließen des Browsers

Inhaltsverzeichnis Klassischer Ansatz Frage Weite...

Vue importiert Echarts, um ein Linienstreudiagramm zu realisieren

In diesem Artikel wird der spezifische Code für d...

So löschen Sie ein Image in Docker

Der Befehl zum Löschen von Bildern im Docker laut...