In diesem Artikelbeispiel wird der spezifische Code des benutzerdefinierten Popup-Effekts von Vue zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt 1. Bestätigungsfelder und Eingabeaufforderungsfelder anpassenBestimmen Sie, ob es sich um ein Bestätigungsfeld oder ein Eingabeaufforderungsfeld handelt, basierend auf dem übergebenen Typ <Vorlage> <Übergangsname="Bestätigung-Ausblenden"> <div v-if="isShowConfirm" Klasse="meine-confirm" @click.stop="clickFun('clickCancel')"> <div Klasse="Confirm-Content-Wrap" @click.stop> <h3 class="my-confirm-title" v-show="titleText != ''">{{ titleText }}</h3> <p class="my-confirm-content">{{ Inhalt }}</p> <div Klasse="meine-Operation"> <div v-if="Typ==='bestätigen'" Klasse="my-cancel-btn" @click="clickFun('clickCancel')"> <p class="my-btn-text my-border-right">{{ Text abbrechen }}</p> </div> <div Klasse="confirm-btn" @click="clickFun('clickConfirm')"> <p class="my-btn-text">{{ Bestätigungstext }}</p> </div> </div> </div> </div> </Übergang> </Vorlage> <Skripttyp="text/ecmascript-6"> Standard exportieren { Daten () { zurückkehren { isShowConfirm: false, // Wird verwendet, um die Anzeige/Ausblendung des gesamten Fensters zu steuern titleText: ‚Bedienungstipps‘, // Inhalt des Eingabeaufforderungsfelds: ‚Sagen Sie etwas ...‘, // Inhalt des Eingabeaufforderungsfelds cancelText: ‚Abbrechen‘, // Text der Abbrechen-Schaltfläche confirmText: ‚Bestätigen‘, // Text der Bestätigungsschaltfläche type: ‚bestätigen‘, // Gibt den Typ des Popup-Fensters an: confirm – Bestätigungs-Popup-Fenster (mit Abbrechen-Schaltfläche); alert – Benachrichtigungs-Popup-Fenster (ohne Abbrechen-Schaltfläche) outerData: null // Wird zum Aufzeichnen von von außen übertragenen Daten verwendet und kann auch zum Überwachen von Benutzerverhalten und Ereignisfunktionen verwendet werden, um festzustellen, welches Ereignis ausgelöst wurde.} }, Methoden: { show (Inhalt, Konfiguration) { this.content = Inhalt || „Sag etwas …“ wenn (Object.prototype.toString.call(config) === '[Objekt Objekt]') { // Stellen Sie sicher, dass der Benutzer ein Objekt übergibt this.titleText = config.titleText || '' this.cancelText = config.cancelText || 'Abbrechen' this.confirmText = config.confirmText || 'Bestätigen' this.type = config.type || 'bestätigen' this.outerData = config.data || null } this.isShowConfirm = true }, versteckt () { this.isShowConfirm = false this.titleText = 'Bedienungstipps' this.cancelText = "Abbrechen" this.confirmText = "Bestätigen" this.type = "bestätigen" this.outerData = null }, clickFun (Typ) { dies.$emit('userBehavior', Typ, dies.outerData) dies.versteckt() } } } </Skript> <Stilbereich> .meine-bestätigen { Position: fest; oben: 0; links: 0; rechts: 0; unten: 0; Hintergrundfarbe: rgba(0, 0, 0, 0,5); Z-Index: 998; /* Dadurch wird verhindert, dass der schwarze Hintergrund erscheint, wenn der Benutzer lange auf den Bildschirm drückt, und dass das Problem mit der Schriftskalierung auftritt, wenn das iPhone horizontal und flach liegt.*/ -Webkit-Textgrößenanpassung: 100 %; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } /*Animationen ein- und aussteigen*/ .bestätigen-ausblenden-eintreten-aktiv { Animation: Deckkraft 0,3 s; } .confirm-fade-enter-active .confirm-content-wrap { Animation: Maßstab 0,3 s; } .bestätigen-verblassen-aktiv lassen { Animation: OutOpacity 0,2 s; } /* Containerstil für Wrapping-Ebene */ .confirm-content-wrap { Position: absolut; oben: 28 %; links: 0; rechts: 0; Breite: 280px; Rand: 0 automatisch; Hintergrundfarbe: #fff; Rahmenradius: 5px; Z-Index: 999; Benutzerauswahl: keine; } /* Oberer Titelabschnitt */ .mein-Bestätigungstitel { Polsterung oben: 20px; Textausrichtung: zentriert; Schriftgröße: 20px; Schriftstärke: 500; Farbe: #333; } /* Mittlerer Inhaltsteil*/ .mein-confirm-content { Polsterung: 0 15px; Polsterung oben: 20px; Rand unten: 32px; Textausrichtung: zentriert; Schriftgröße: 16px; Farbe: #666; Zeilenhöhe: 1,5; } /* Stil der unteren Schaltfläche */ .meine-Operation { Anzeige: Flex; Rahmen oben: 1px durchgezogen #eee; } .meine-Operation .meine-Abbrechen-btn, .Bestätigen-btn { biegen: 1; } .meine-Operation .confirm-btn { Farbe: #ffb000; } .meine-Operation .mein-btn-text { Textausrichtung: zentriert; Schriftgröße: 16px; Rand: 8px 0; Polsterung: 6px 0; } /* Andere Dekorationsstile*/ .meine-Grenze-rechts { Rahmen rechts: 1px durchgezogen #eee; } /* Eingehende Animation*/ @keyframes Deckkraft { 0% { Deckkraft: 0; } 100 % { Deckkraft: 1; } } @keyframes skalieren { 0% { transformieren: Skalierung(0); } 60 % { transformieren: Skalierung(1.1); } 100 % { transformieren: Skalierung(1); } } /* Animation beenden */ @keyframes outOpacity { 0% { Deckkraft: 1; } 100 % { Deckkraft: 0; } } </Stil> 2. Anruf:(1) Verwendung der Eingabeaufforderung: <DialogView ref="myDialog" @userBehavior="changeData"></DialogView> … //Eingabeaufforderungsfeld this.$refs.myDialog.show(content, { Typ: "Alarm", Bestätigungstext: 'OK', cancelText: 'Abbrechen', TitelText: '', Daten: null }) Wirkung: (2) Bestätigungsfeld: this.$refs.myDialog.show('Möchten Sie dieses Produkt einlösen?', { Typ: 'bestätigen', confirmText: 'Jetzt umtauschen', cancelText: 'Nein danke', TitelText: '', Daten: {shop: shop, betreiben: 'Austausch'} }) Wirkung: Wenn das Bestätigungsfeld gedrückt wird: changeData <DialogView ref="myDialog" @userBehavior="changeData"></DialogView> … changeData (Typ, Daten) { console.log('changeData',Daten) if (Typ === 'KlickBestätigen') { wenn (data.operate === 'Austausch') { // dies.reduceEnergy(data.shop) dieser.exchangeCoupon(data.shop) } sonst wenn (data.operate === 'downLoad') { Fenster.Standort = Daten.URL } sonst wenn (data.operate === 'login') { this.uplusApi.upVdnModule.goToPage({url: 'mpaas://usercenter'}) this.isLogin = false } } }, 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:
|
>>: CentOS 8 offiziell veröffentlicht, basierend auf Red Hat Enterprise Linux 8
Inhaltsverzeichnis Installieren Sie zuerst wget H...
1. Konfigurieren Sie die lokale Yum-Quelle 1. Mou...
Hinweis: Beim Projektstart ist kein Fehler aufgru...
Heute werde ich Sie durch die Geschichte von ext4...
Inhaltsverzeichnis Vorwort 1. Was ist ein Abschlu...
Wenn der Pfad nach dem Domänennamen auf andere Ve...
Vorwort Wenn die HTML-Struktur einer Seite viele ...
Inhaltsverzeichnis Hintergrund analysieren Datens...
Frage: <input type="hidden" name=&qu...
1. Einführung in Navicat 1. Was ist Navicat? Navi...
1. Bei der Verwendung von mysqldump wird ein Fehl...
<br />Dies ist eine Reihe von Tutorials, die...
1. Suchen Sie das entsprechende NodeJS-Paket unte...
Vorwort In diesem Artikel wird erläutert, wie Sie...
Inhaltsverzeichnis 1. Reduzieren Sie die Anzahl d...