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

MySQL-Partitionierungspraxis mit Navicat

MySQL-Partitionierung ist hilfreich bei der Verwa...

Grafisches Tutorial zur Installation von MySQL 5.5 unter Win7

Die MySQL-Installation ist relativ einfach. Norma...

So verwenden Sie allgemeine MySQL-Funktionen zur Verarbeitung von JSON

Offizielle Dokumentation: JSON-Funktionen Name Be...

Vue importiert Echarts, um ein Linienstreudiagramm zu realisieren

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

Verwenden Sie CSS, um spezielle Logos oder Grafiken zu implementieren

1. Einleitung Da Bilder viel Platz beanspruchen u...

Beispielcode für die Konvertierung von MySQL-Zeilen und -Spalten

1. Nachfrage Wir haben drei Tabellen. Wir müssen ...

CSS-Menüschaltflächenanimation

Um ein Dropdown-Menü zu schreiben, klicken Sie au...

Docker-Konfiguration Alibaba Cloud Image Acceleration Pull-Implementierung

Heute habe ich Docker verwendet, um das Image abz...

Zusammenfassung der MySQL-Datums- und Zeitfunktionen (MySQL 5.X)

1. MySQL erhält die aktuelle Datums- und Uhrzeitf...

Ein Beispiel für das elegante Schreiben von Urteilen in JavaScript

Inhaltsverzeichnis Vorwort 1. Monadisches Urteil ...

Verwenden Sie HTML, um eine einfache E-Mail-Vorlage zu schreiben

Heute möchte ich über ein „Low-Tech“-Problem schr...

Analyse des Problems des Datenverlusts durch erzwungene Aktualisierung von Vuex

vuex-persistenter Zustand Kernprinzip: Alle Vuex-...