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
Vorwort Bei der Arbeit an einem Hochverfügbarkeit...
1. [admin@JD ~]$ cd opt #Geben Sie opt im Stammve...
Einführung in influxDB influxDB ist eine verteilt...
Kurzeigenschaften werden verwendet, um mehreren E...
Inhaltsverzeichnis Überblick Die Rolle des Revers...
Die Verwendung von Ajax zum Implementieren der For...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Verwenden Sie Objekt, um ei...
Einführung Die meisten Leute, die schon einmal Da...
Aus diesem Grund haben wir eine Auswahl von 30 Kom...
Verwenden von Javascript zum Implementieren eines...
Web-Frontend 1 Studierendenausweis Name Geschlech...
Die Anzeige von Daten ist seit jeher eine Forderu...
Ich nenne diese Art von Fehler einen typischen „H...
Inhaltsverzeichnis Allgemeine Schlüsselaliase Sch...