VorwortBei der Entwicklung kleiner Programme müssen wir häufig durch die Liste scrollen, um sie anzuzeigen. Durch die Verwendung der Ankerpositionierung kann daher eine benutzerfreundlichere interaktive Erfahrung erzielt werden. Schauen wir uns den im Projekt erzielten Effekt an: FunktionalitätImplementiert mithilfe der Miniprogramm-Ansichtscontainerkomponente: Scroll-View Dabei ist zu beachten, dass beim vertikalen Scrollen die Scroll-Ansicht eine feste Höhe angeben muss. Schauen wir uns den WXML-Code an: <scroll-view style="Höhe:{{autoHeight}};" scroll-y scroll-into-view="{{toView}}" class="scroll-warp" scroll-with-animation="{{true}}" bindscroll="handelScroll"> <block wx:for="{{dataList}}" wx:key="{{index}}"> <view class="floorType" id="{{item.floor}}"> </Ansicht> </block> </scroll-ansicht> Hier wird autoHeight dynamisch basierend auf der Höhe verschiedener Modelle berechnet. Scroll-view hat ein wichtiges Attribut: scroll-into-view, das einen String-Wert erhält, der die Scroll-Position (Ankerpunkt) ist. Dann müssen wir die entsprechende Ankerpunktliste im untergeordneten Knoten von scroll-view festlegen: wie das id-Attribut im Knoten class=floorType in der obigen Abbildung. Auf diese Weise hat unser Scrollen eine Eins-zu-eins-Entsprechung. Klicken Sie auf den Boden im Filterblock, setzen Sie die Variable toView auf die entsprechenden Daten und die Liste wird an die entsprechende Position gescrollt. Mit dem Bindscroll-Ereignis können wir etwas anfangen: Dieses Ereignis wird ausgelöst, wenn in der Liste gescrollt wird. Schlüsselcode: handelScroll(e) { let scrollTop=e.detail.scrollTop; lass scrollArr = this.data.anchorArray; wenn(scrollTop>=scrollArr[scrollArr.length-1]-this.data.autoHeight){ zurückkehren; }anders { für (let i=0;i<scrollArr.length;i++){ wenn(scrollTop>=0&&scrollTop<scrollArr[0]){ // selectFloorIndex steuert die Hervorhebung des Filterblocks this.setData({ wähleFloorIndex: 0 }); }sonst wenn(scrollTop>=scrollArr[i-1]&&scrollTop<scrollArr[i]) { dies.setData({ wähleFloorIndex: i }); } } } } Hier ist anchorArray die Summe der Arrays der Seitenhöhe, die von allen Ankerblöcken belegt wird. Anhand eines Bildes ist dies deutlicher zu erkennen: Jeder Ankerblock hat eine feste Höhe. Nachdem wir die Daten erhalten und die Seite gerendert haben, können wir verwenden Schlüsselcode: Lassen Sie die Abfrage = wx.createSelectorQuery().in(this); lass HöheArr = []; sei h = 0; Abfrage.Alles auswählen('.floorType').boundingClientRect((reagieren)=>{ reagieren.forEach((res) => { h+=Auflösung.Höhe; HöheArr.push(h) }) dies.setData({ AnkerArray:HöheArr }); }).exec(); An diesem Punkt ist das Scrollen zur Positionierung des Ankerpunkts abgeschlossen. Ich hoffe, es kann allen helfen. Wenn Sie Fragen haben, können Sie diese gerne mitteilen und uns darauf hinweisen! ZusammenfassenDies ist das Ende dieses Artikels über die Implementierung der Ankerpunktpositionierung in WeChat Mini-Programmen. Weitere Informationen zur Ankerpunktpositionierung von WeChat Mini-Programmen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Verschiedene Möglichkeiten der Ausführung im Hintergrund von Linux (Zusammenfassung)
>>: MySQL-Volltextindex, um eine einfache Version des Suchmaschinen-Beispielcodes zu erreichen
EXPLAIN zeigt, wie MySQL Indizes verwendet, um Au...
Docker installieren Aktualisieren Sie das Yum-Pak...
Zu den Indextypen von MySQL gehören Normalindex, ...
Als PHP7 herauskam, habe ich als Fan der neuesten...
1. Offizielle OpenSSL-Website Offizielle Download...
Vor Kurzem haben wir SQL zur Optimierung online e...
In diesem Artikel wird der spezifische Code der r...
Ergebnisse erzielen html <div Klasse="Con...
Wenn Browser-Anbieter die Standards umgehen und ei...
Anwendungsszenario In der Datentabelle muss die A...
Manchmal müssen Sie Links verwenden, aber Sie müss...
Heute, als ich unterwegs war, schrieb mir ein Kol...
Heute Wählen Sie * aus Tabellenname, wobei to_day...
Inhaltsverzeichnis Warum WebSocket verwenden? Soc...
Wie unten dargestellt: CSS- CodeInhalt in die Zwi...