In diesem Artikelbeispiel wird der spezifische Code zur Implementierung des Städtelisteneffekts basierend auf der VUE-Komponente zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt
WirkungerreichenH5: <Vorlage> <div id="Stadt"> <div Klasse="Suche-Stadt-zurück"> <div Klasse="Suchstadt"> <img src="../assets/img/Shop/search.png"> <input type="text" placeholder="Bitte geben Sie den Städtenamen ein" v-model="citySearch"> <a @click="citySearch=''" href="javascript:;" class="img-del" v-show="citySearch"></a> </div> </div> <div Klasse="Stadt-Inhalt"> <div id="showCityContent"></div> <div Klasse = "letter-item" v-if = "showCity&&sourcePageType===1"> <div></div> <div @click="cityChoose('*','StadtChoose')">StadtChoose</div> </div> <div v-for="(val,key) in showCity" Klasse="letter-item"> <div><a :id="Schlüssel">{{Schlüssel}}</a></div> <div v-for="i in val"> <div :class="{'city-hide': i.Code==='*'&&sourcePageType===3}" Klasse="item-buttom" @click="Stadtauswahl(i.Code,i.Name)">{{i.Name}} </div> </div> </div> </div> <aside class="letter-aside" :style="{color: config.letterColor}" v-if="showCity"> <ul> <!--<li>Positionierung</li>--> <!--<li>Beliebt</li>--> <li v-for="(val,key) in showCity" @click="naver(key)">{{key}} </li> </ul> </aside> <div id="tip">{{tipString}}</div> </div> </Vorlage> JS: <Skript> importiere {GetCityList} von 'service' importiere {setTitle, setSessionStore, getSessionStore} aus '../utils/method' Standard exportieren{ Name: 'CityList', Daten () { zurückkehren { citysAllSSKey: 'XMall-Component-AllCityList', // Sitzungscache aller Städte cities: [], showCity: null, tipString: null, Buchstabe: null, Stadtsuche: '', Quellseitentyp: 1 } }, Requisiten: { Konfiguration: { Typ: Objekt, Standard: () => { zurückkehren { Buchstabenfarbe: '#f44f0f', } } }, Seitentyp: { Typ: Nummer, default: 1 // 1: bundesweite Städteliste}, Shop-ID: { Typ: Zeichenfolge, Standard: null } }, betrachten: citySearch: Funktion () { dies.cityFilter() } }, erstellt: Funktion () { setTitle('Wählen Sie eine Stadt aus') }, montiert: Funktion () { dies.in() }, Methoden: { hinein(){ this.sourcePageType = parseInt(this.$props.pageType) wenn (dieser.sourcePageType === 1) { diese.Städte = JSON.parse(getSessionStore(this.citysAllSSKey)) wenn (diese.Städte) { diese.showCity = diese.städte } anders { this.getAllCityList() } } }, // Nationale Städteliste abrufen getAllCityList: function () { // Anzeige wird geladen dies.$vux.loading.show({text: 'Wird geladen'}) GetCityList( { Stichwort: '' }, (res) => { diese.Städte = res diese.showCity = res //Ladevorgang ausblenden dies.$vux.loading.hide() setSessionStore(this.citysAllSSKey, res) }, (err) => { console.log(fehler) //Ladevorgang ausblenden dies.$vux.loading.hide() }) }, // Die seitlichen Buchstaben positionieren und zur entsprechenden Position scrollen naver: function (letter) { this.tipString = Buchstabe let obj = document.getElementById(letter) let Tipp = document.getElementById('Tipp') tip.setAttribute('Klasse', 'tipAppear') setzeTimeout(Funktion () { tip.removeAttribute('Klasse') }, 500) let oPos = obj.offsetTop gibt window.scrollTo(0, oPos - 36) zurück }, // Städtesuche cityFilter: function () { let nodata = true wenn (diese.citySearch) { // Durchlaufe das Objekt und wähle den Wert aus, der die Bedingungen erfüllt let showCityNew = {} für (let-Schlüssel in this.cities) { let arrayNew = [] für (let Wert von this.cities[Schlüssel]) { wenn (Wert.Name.Index von (dieser.Stadtsuche) > -1) { arrayNew.push(Wert) } } wenn (arrayNew.length > 0) { showCityNew[Schlüssel] = ArrayNew nodata = falsch } } this.showCity = StadtNeu anzeigen } anders { diese.showCity = diese.städte nodata = falsch } wenn (keine Daten) { this.showCity = null let _showCityContent = document.getElementById('showCityContent') _showCityContent.innerText = 'Keine Ergebnisse gefunden' _showCityContent.setAttribute('Klasse', 'tipShow') } anders { document.getElementById('showCityContent').innerText = '' } }, //Städteauswahl cityChoose: function (code, name) { dies.$emit('Stadt auswählen', {Code: Code, Name: Name}) } } } </Skript> CSS: <style lang="scss" scoped> #Stadt { Position: relativ; Hintergrund: #f6f4f5; } #Stadt{ .Stadt-Inhalt { Polsterung: 60px 0 0 0; } .letter-item{ Hintergrundfarbe: #fff; } .letter-item > div:erstes-kind { Farbe: #999; Hintergrund: #f6f4f5; Rand rechts: 30px; } .letter-item > div { Farbe: #333; Zeilenhöhe: 45px; Schriftgröße: 14px; Polsterung: 0 30px 0 15px; Hintergrundfarbe: #fff; } .letter-item .item-buttom { Rahmen unten: 1px durchgezogen #e6e6e6; } .letter-aside { Position: fest; rechts: 5px; oben: 5,3rem; } .letter-aside ul { Listenstil: keiner; Zeilenhöhe: 1,4em; Schriftgröße: 14px; Textausrichtung: zentriert; } #Tipp { Position: fest; links: 0; rechts: 0; oben: 0; unten: 0; Rand: automatisch; Rand: 1px durchgezogen #333333; Breite: 100px; Höhe: 100px; Z-Index: 10; Textausrichtung: zentriert; Zeilenhöhe: 100px; Schriftgröße: 50px; Deckkraft: 0; } .tipAppear { Animation: Tipp 1 erscheint linear 0,5 s; } @-webkit-keyframes erscheinenTip { 0% { Deckkraft: 1; } 80 % { Deckkraft: 0,5; } 100 % { Deckkraft: 0; } } @keyframes erscheinenTip { 0% { Deckkraft: 1; } 80 % { Deckkraft: 0,5; } 100 % { Deckkraft: 0; } } .search-city-back { Breite: 100 %; Position: fest; Hintergrundfarbe: #f6f4f5; maximale Breite: 414px; } .Suchstadt { Höhe: 30px; Zeilenhöhe: 30px; Polsterung: 0 15px; Rahmenradius: 14px; Rand: 12px 15px; Hintergrundfarbe: #ffffff; } .Suchstadt img { Höhe: 18px; Breite: 18px; } .search-city Eingabe { Breite: 80%; Rand links: 5px; Zeilenhöhe: 24px; Rahmenradius: 5px; Gliederung: keine; Schriftgröße: 15px; } .tipShow { Textausrichtung: zentriert; Zeilenhöhe: 60px; Schriftgröße: 16px; Farbe: #bbbbbb; } .Stadt-verstecken { Anzeige: keine; } .img-del { Breite: 16px; Höhe: 16px; Position: absolut; oben: 19px; rechts: 30px; Hintergrundfarbe: rgba(0, 0, 0, .2); Rahmenradius: 8px; } .img-del::vorher, .img-del::nachher { Inhalt: ' '; Breite: 0; Höhe: 50%; Position: absolut; oben: 4px; rechts: 7px; Rahmen rechts: 1px durchgezogen #fff; } .img-del::vor { transformieren: drehen (45 Grad); } .img-del::nach { transformieren: drehen (-45 Grad); } } </Stil> 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:
|
>>: Mybatis-Statistiken zur Ausführungszeit jeder SQL-Anweisung
So verwenden Sie CSS, um die Bogenbewegung von El...
Vorwort: In MySQL sollte die Master-Slave-Archite...
Bei Bildern denken wir zuerst an das Hintergrundb...
1. Installieren Sie die Express-Bibliothek und de...
Durchführung von Prozessanalysen (1) Wie rufe ich...
1. Nachfrage Das Backend stellt solche Daten bere...
Voraussetzung: Das Webentwickler-Plugin wurde inst...
Hiermit werden die Grundkenntnisse des Interviewt...
=================================================...
Einige Freunde haben beim Erlernen von Datenbanke...
Shtml und asp sind ähnlich. In Dateien mit dem Nam...
Inhaltsverzeichnis iview-admin2.0 integrierte Ber...
Inhaltsverzeichnis Grundlegende Übersicht GTID on...
Dieser Artikel stellt RHEL8-Netzwerkdienste und N...
Laden Sie zunächst das Installationspaket von der...