Rendern Definieren Sie das Skelett, schreiben Sie HTML und CSSHTML-Teil <Vorlage> <div Klasse="drag-wrapper" ref="dragDiv"> <div Klasse="drag_bg"></div> <div class="drag_text f14">{{ Wörter bestätigen }}</div> <!-- Verschobene Module --> <div ref="VerschiebeDiv" @mousedown="mousedownFn($event)" :Klasse="{'handler_ok_bg': Erfolg bestätigen}" Klasse="Handler handler_bg"></div> </div> </Vorlage> CSS-Teil: Aufgrund von Bedenken hinsichtlich der Bildquelle wird es als Base64-Bild geschrieben <Stilbereich> .ziehen{ Position: relativ; Hintergrundfarbe: #e8e8e8; Breite: 100 %; Höhe: 40px; Zeilenhöhe: 40px; Textausrichtung: zentriert; } .handler{ Breite: 40px; Höhe: 40px; Rand: 1px durchgezogen #ccc; Cursor: bewegen; Position: absolut;oben: 0px;links: 0px; } .handler_bg{ background: #fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8++IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YiRG4AAAALFJREFUeNpi/P//PwMlgImBQkA9A+bOnfsIiBOxKcInh+yCaCDuByoswaIOpxwjciACFegBqZ1AvBSIS5OTk/8TkmNEjwWgQiUgtQuIjwAxUF3yX3xyGIEIFLwHpKyAWB+I1xGSwxULIGf9A7mQkBwTlhBXAFLHgPgqEAcTkmNCU6AL9d8WII4HOvk3ITkWJAXWUMlOoGQHmsE45ViQ2KuBuASoYC4Wf+OUYxz6mQkgwAAN9mIrUReCXgAAAABJRU5ErkJggg==") no-repeat center; } .handler_ok_bg{ background: #fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8++IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k+sHwwAAASZJREFUeNpi/P//PwMyKD8uZw+kUoDYEYgloMIvgHg/EM/ptHx0EFk9I8wAoEZ+IDUPiIMY8IN1QJwENOgj3ACo5gNAbMBAHLgAxA4gQ5igAnNJ0MwAVTsX7IKyY7L2UNuJAf+AmAmJ78AEDTBiwGYg5gbifCSxFCZoaBMCy4A4GOjnH0D6DpK4IxNSVIHAfSDOAeLraJrjgJp/AwPbHMhejiQnwYRmUzNQ4VQgDQqXK0ia/0I17wJiPmQNTNBEAgMlQIWiQA2vgWw7QppBekGxsAjIiEUSBNnsBDWEAY9mEFgMMgBk00E0iZtA7AHEctDQ58MRuA6wlLgGFMoMpIG1QFeGwAIxGZo8GUhIysmwQGSAZgwHaEZhICIzOaBkJkqyM0CAAQDGx279Jf50AAAAAABJRU5ErkJggg==") no-repeat center; } .drag_bg{ Hintergrundfarbe: #7ac23c; Höhe: 40px; Breite: 0px; } .Text ziehen{ Position: absolut; oben: 0px; Breite: 100 %; Textausrichtung: zentriert; -moz-Benutzerauswahl: keine; -webkit-Benutzerauswahl: keine; Benutzerauswahl: keine; -o-Benutzerauswahl: keine; -ms-Benutzerauswahl: keine; } </Stil> Implementieren Sie die Gleit- und ZiehüberprüfungParameter definieren Daten() { zurückkehren { beginClientX:0, // Abstand vom linken Ende des BildschirmsmouseMoveStata:false, // Beurteilung des Drag-Status auslösenmaxwidth:'', // Maximale Drag-Breite, berechnet basierend auf der Slider-BreiteconfirmWords:'Drag-Slider-Überprüfung', // Slider-TextconfirmSuccess:false // Beurteilung der erfolgreichen Überprüfung} } 1. Berechnen Sie bei der Montage die maximale verschiebbare Breite basierend auf der Schiebereglerbreite und achten Sie auf Fingerberührungs- und -verlassensereignisse montiert() { // Berechnen Sie die maximale verschiebbare Breite basierend auf der Schiebereglerbreite this.maxwidth = this.$refs.dragDiv.clientWidth - this.$refs.moveDiv.clientWidth // Auf Fingerberührungsereignisse achten document.getElementsByTagName('html')[0].addEventListener('mousemove', this.mouseMoveFn) // Auf Ereignisse beim Weggehen des Fingers achten document.getElementsByTagName('html')[0].addEventListener('mouseup', this.moseUpFn) } 2. Schreiben Sie Ereignisse für das Gleiten und Weggehen des Fingers Mousemove-Ereignis Bestimmen Sie zunächst, ob der Drag-Zustand ausgelöst wird, berechnen Sie dann die Drag-Distanz und die Moduldistanz und weisen Sie Werte in Echtzeit zu //Erfolg prüfen Funktion mouseMoveFn(e){ wenn(diese.mouseMoveStata){ let width = e.clientX - this.beginClientX wenn(Breite > 0 && 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() } }, Mouseup-Ereignis Ändern Sie den Drag-Status auf „false“ und bewegen Sie den Schieberegler an die entsprechende Fingerablageposition. moseUpFn(e) { this.mouseMoveState = !1 // Status ändern const width = e.clientX - this.beginClientX // Breite berechnen und abrufen if (width < this.maxwidth) { // Wenn die Breite kleiner als die Breite des Moduls ist, einen Wert zuweisen document.getElementsByClassName('handler')[0].style.left = 0 + 'px' document.getElementsByClassName('drag_bg')[0].style.width = 0 + 'px' } } Im Handlerblock des HTML-Abschnitts oben wird das Mousedown-Ereignis definiert (mousedownFn($event)) Es ist notwendig, das Standardverhalten des Browsers wie die Dateiauswahl zu verhindern, den Schwellenwert zum Auslösen des Ziehzustands zu aktivieren und die Entfernung aufzuzeichnen, über die sich der Finger bewegt Mauszeiger nach untenFn:Funktion (e) { e.preventDefault && e.preventDefault() // Verhindere standardmäßige Browserereignisse wie die Textauswahl this.mouseMoveStata = true // Öffne den Schwellenwert zum Auslösen des Drag-Zustands this.beginClientX = e.clientX // Zeichne die Distanz auf, über die sich der Finger bewegt}, An diesem Punkt ist die Funktion abgeschlossen. . Der vollständige JS-Code lautet wie folgt <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 über erfolgreichen Abschluss der Überprüfung*/ } }, 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) }, Methoden: { Mauszeiger nach untenFn:Funktion (e) { wenn(!this.confirmSuccess){ e.preventDefault && e.preventDefault() //Textauswahl und andere Standardereignisse des Browsers verhindern this.mouseMoveStata = true this.beginClientX = e.clientX } }, //mousedoen Ereignis Erfolgsfunktion () { this.confirmSuccess = wahr this.confirmWords = 'Verifizierung erfolgreich' dies.$emit('onValidation', true) wenn(window.addEventListener){ document.getElementsByTagName('html')[0].removeEventListener('mousemove',this.mouseMoveFn) document.getElementsByTagName('html')[0].removeEventListener('mouseup',this.moseUpFn) }sonst 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 prüfen Funktion mouseMoveFn(e){ wenn(diese.mouseMoveStata){ let width = e.clientX - this.beginClientX wenn(Breite > 0 && 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.maxBreite){ document.getElementsByClassName('handler')[0].style.left = 0 + 'px' document.getElementsByClassName('drag_bg')[0].style.width = 0 + 'px' } } } } </Skript> ZusammenfassenDies ist das Ende dieses Artikels über die Implementierung der Slider-Drag-Verifizierungsfunktion von Vue. Weitere relevante Inhalte zur Slider-Drag-Verifizierung von Vue finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zwei Methoden der MySql-Kommaverkettungs-Stringabfrage
>>: So verwenden Sie den Linux-Befehl nl
Anaconda ist die beliebteste Python-Plattform für...
#Docker-Suche #Docker-Pull-Portainer 1. Laden Sie...
Inhaltsverzeichnis 1. Wirkung 2. Hauptcode 1. Wir...
Normalerweise wird bei einem Deadlock die Verbind...
Dieser Artikel fasst einige gängige MySQL-Optimie...
Verwandte Wissenspunkte Übergeben von Werten von ...
Vorwort: Ich bin kürzlich auf das Problem der Ins...
Dieser Artikel veranschaulicht anhand von Beispie...
Geschrieben am Anfang Ich erinnere mich, dass ich...
Servermanager-Startfehler bei Verbindung zur Date...
In diesem Artikel wird der spezifische Code von V...
Vorwort DISTINCT ist tatsächlich der Implementier...
Die Datenbank ist wie das Betriebssystem eine gem...
1. Umgebungsversion Docker-Version 19.03.12 cento...
Linux ist ein offenes System. Im Internet sind vi...