Vue implementiert eine einfache Slider-Verifizierung

Vue implementiert eine einfache Slider-Verifizierung

Dieses Artikelbeispiel zeigt die Implementierung der Vue-Schiebereglervalidierung. Der Code lautet wie folgt

<Vorlage>
  <div Klasse="ziehen"
       ref="dragDiv">
    <div Klasse="drag_bg"></div>
    <div class="drag_text">{{confirmWords}}</div>
    <div ref="VerschiebeDiv"
         @mousedown="mousedownFn($event)"
         :Klasse="{'handler_ok_bg':confirmSuccess}"
         Klasse="Handler handler_bg"
         Stil="Position: absolut;oben: 0px;links: 0px;"></div>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Daten () {
    zurückkehren {
      beginClientX: 0, /* Abstand vom linken Bildschirmende*/
      mouseMoveStata: false, /* Beurteilung des Drag-Status auslösen*/
      maxwidth: '', /* Maximale Drag-Breite, berechnet basierend auf der Slider-Breite*/
      confirmWords: 'Ziehen Sie den Schieberegler zur Bestätigung', /* Schiebereglertext*/
      confirmSuccess: false /* Beurteilung der erfolgreichen Überprüfung */
    }
  },
  Methoden: {
    mousedownFn: Funktion (e) {
      wenn (!this.confirmSuccess) {
        e.preventDefault && e.preventDefault() // Verhindere Standardereignisse des Browsers wie z. B. die Textauswahl this.mouseMoveStata = true
        this.beginClientX = e.clientX
      }
    }, // mousedoen Ereignis Erfolgsfunktion () {
      this.confirmSuccess = wahr
      this.confirmWords = 'Verifizierung erfolgreich'
      wenn (window.addEventListener) {
        document.getElementsByTagName('html')[0].removeEventListener('mousemove', this.mouseMoveFn)
        document.getElementsByTagName('html')[0].removeEventListener('mouseup', this.moseUpFn)
      } anders {
        document.getElementsByTagName('html')[0].removeEventListener('mouseup', () => { })
      }
      document.getElementsByClassName('drag_text')[0].style.color = '#fff'
      document.getElementsByClassName('handler')[0].style.left = this.maxwidth + 'px'
      document.getElementsByClassName('drag_bg')[0].style.width = this.maxwidth + 'px'
    }, // Erfolg überprüfen Funktion mouseMoveFn (e) {
      wenn (this.mouseMoveStata) {
        let width = e.clientX - this.beginClientX
        wenn (Breite > 0 und Breite <= diese.maxbreite) {
          document.getElementsByClassName('handler')[0].style.left = Breite + 'px'
          document.getElementsByClassName('drag_bg')[0].style.width = Breite + 'px'
        } sonst wenn (Breite > diese.max.Breite) {
          diese.Erfolgsfunktion()
        }
      }
    }, // Mausbewegungsereignis moseUpFn (e) {
      this.mouseMoveStata = false
      var Breite = e.clientX - this.beginClientX
      wenn (Breite < diese.max.Breite) {
        document.getElementsByClassName('handler')[0].style.left = 0 + 'px'
        document.getElementsByClassName('drag_bg')[0].style.width = 0 + 'px'
      }
    } // Mouseup-Ereignis},
  montiert () {
    this.maxwidth = this.$refs.dragDiv.clientWidth - this.$refs.moveDiv.clientWidth
    document.getElementsByTagName('html')[0].addEventListener('mousemove', this.mouseMoveFn)
    document.getElementsByTagName('html')[0].addEventListener('mouseup', this.moseUpFn)
  }
}
</Skript>

<Stilbereich>
.ziehen {
  Position: relativ;
  Hintergrundfarbe: #e8e8e8;
  Breite: 30%;
  Höhe: 34px;
  Zeilenhöhe: 34px;
  Textausrichtung: zentriert;
}
.handler {
  Breite: 40px;
  Höhe: 32px;
  Rand: 1px durchgezogen #ccc;
  Cursor: bewegen;
}
.handler_bg {
  Hintergrund: #fff
    url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8++IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YiRG4AAAALFJREFUeNpi/P//PwMlgImBQkA9A+bOnfsIiBOxKcInh+yCaCDuByoswaIOpxwjciACFegBqZ1AvBSIS5OTk/8TkmNEjwWgQiUgtQuIjwAxUF3yX3xyGIEIFLwHpKyAWB+I1xGSwxULIGf9A7mQkBwTlhBXAFLHgPgqEAcTkmNCU6AL9d8WII4HOvk3ITkWJAXWUMlOoGQHmsE45ViQ2KuBuASoYC4Wf+OUYxz6mQkgwAAN9mIrUReCXgAAAABJRU5ErkJggg==')
    Zentrum ohne Wiederholung;
}
.handler_ok_bg {
  Hintergrund: #fff
    url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8++IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k+sHwwAAASZJREFUeNpi/P//PwMyKD8uZw+kUoDYEYgloMIvgHg/EM/ptHx0EFk9I8wAoEZ+IDUPiIMY8IN1QJwENOgj3ACo5gNAbMBAHLgAxA4gQ5igAnNJ0MwAVTsX7IKyY7L2UNuJAf+AmAmJ78AEDTBiwGYg5gbifCSxFCZoaBMCy4A4GOjnH0D6DpK4IxNSVIHAfSDOAeLraJrjgJp/AwPbHMhejiQnwYRmUzNQ4VQgDQqXK0ia/0I17wJiPmQNTNBEAgMlQIWiQA2vgWw7QppBekGxsAjIiEUSBNnsBDWEAY9mEFgMMgBk00E0iZtA7AHEctDQ58MRuA6wlLgGFMoMpIG1QFeGwAIxGZo8GUhIysmwQGSAZgwHaEZhICIzOaBkJkqyM0CAAQDGx279Jf50AAAAAABJRU5ErkJggg==')
    Zentrum ohne Wiederholung;
}
.ziehen_bg {
  Hintergrundfarbe: #7ac23c;
  Höhe: 34px;
  Breite: 0px;
}
.Text ziehen {
  Position: absolut;
  oben: 0px;
  Breite: 100 %;
  Textausrichtung: zentriert;
  -moz-Benutzerauswahl: keine;
  -webkit-Benutzerauswahl: keine;
  Benutzerauswahl: keine;
  -o-Benutzerauswahl: keine;
  -ms-user-select: keine;
}
</Stil>

Das Wirkungsdiagramm sieht wie folgt aus

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:
  • Vue + Elementui realisiert die Überprüfung des Schieberegler-Puzzles durch Ziehen
  • Vue implementiert Slider-Verifizierung für Mobilgeräte
  • Vue implementiert Slider-Verifizierung beim Einloggen
  • Praxis der Integration von Vue mit Alibaba Cloud zur Slider-Verifizierung
  • So verwenden Sie den Tencent-Schieberegler-Verifizierungscode im Vue3+Vue-cli4-Projekt
  • Verwenden Sie die Konva- und Vue-Konva-Bibliotheken, um die Drag-Slider-Verifizierungsfunktion zu implementieren
  • VUE-Zugriff auf die Tencent-Verifizierungscodefunktion (Schieberegler-Verifizierung) Memo
  • Vue implementiert die Drag-Slider-Verifizierungsfunktion (nur CSS+JS ohne Hintergrundverifizierungsschritte)
  • vue-cli benutzerdefinierte Direktive Direktive Validierungsschieberegler hinzufügen Beispiel
  • So kapseln Sie die Bildschieberegler-Verifizierungskomponente in Vue

<<:  Detaillierte Erklärung zum Erstellen einer aktualisierbaren Ansicht in MySQL

>>:  Verwenden von Nginx zum Implementieren der Graustufenversion

Artikel empfehlen

So können Sie lange Vue-Listen schnell laden

Inhaltsverzeichnis Hintergrund Hauptinhalt 1. Kom...

Verwendungsanweisungen für den Befehl „Docker Create“

Mit dem Befehl „Docker Create“ können Sie einen C...

CSS erzielt den Effekt der Vermischung zweier Elemente (Sticky-Effekt)

Ich erinnere mich, dass es vor ein paar Jahren in...

Zusammenfassung der Situationen, in denen MySQL-Indizes nicht verwendet werden

Indextypen in MySQL Im Allgemeinen können sie in ...

Untersuchung der Eingabetastenfunktion vom Typ „Datei“

<br />Beim Hochladen auf manchen Websites wi...

Der DOCTYPE-Modusauswahlmechanismus bekannter Browser

Dokumentumfang Dieser Artikel behandelt den Modus...

Anzeigen und Analysieren des MySQL-Ausführungsstatus

Wenn Sie den Eindruck haben, dass ein Problem mit...

MySQL-Beispielcode für die Addition und Subtraktion von Datum und Uhrzeit

Inhaltsverzeichnis 1.MySQL addiert oder subtrahie...

CSS3-Countdown-Effekt

Ergebnisse erzielen Implementierungscode html <...

Interpretation der Vue-Komponentenregistrierungsmethode

Inhaltsverzeichnis Überblick 1. Globale Registrie...

So verwenden Sie den Linux-Befehl „locate“

01. Befehlsübersicht Der Befehl „locate“ ist eige...

Docker-Bereitstellung von Implementierungsschritten für Flask-Anwendungen

1. Zweck Schreiben Sie lokal eine Flask-Anwendung...

Echtzeitaktualisierung einer langen Verbindung auf der Vue+WebSocket-Seite

In letzter Zeit muss das Vue-Projekt die Daten in...