Die Position der Bildlaufleiste bleibt beim Scrollen der Vant-List-Komponente erhalten

Die Position der Bildlaufleiste bleibt beim Scrollen der Vant-List-Komponente erhalten

Die Position der Bildlaufleiste bleibt beim Scrollen der Vant-Listenkomponente erhalten. Dies muss in Verbindung mit KeepAlive verwendet werden. Ich teile diesen Artikel zu Ihrer Information.

1. Die Voraussetzung zum Speichern des Standorts besteht darin, die KeepAlive-Komponente zum Zwischenspeichern und den App.vue-Code zu verwenden

<Vorlage>
  <div id="app">
    <am Leben erhalten>
      <router-view v-if='$route.meta.keepAlive'/>
    </am Leben erhalten>
    <router-view v-if='!$route.meta.keepAlive'/>
  </div>
</Vorlage>

2. Fügen Sie in der Routing-Datei router.js scrollTop und keepAlive zu jedem Routing-Meta hinzu

 {
      Pfad: '/home',
      Name: 'Heimat',
      Komponente: auflösen => erfordern(['@/views/home/index.vue'], auflösen),
      Meta: {
        Titel: 'Homepage',
        Index: 1,
        keepAlive: wahr,
        scrollTop: 0
      }
    },
    {
      Pfad: '/klassifizieren',
      Name: 'klassifizieren',
      Komponente: auflösen => erfordern(['@/views/classify/index.vue'], auflösen),
      Meta: {
        Titel: 'Klassifikation',
        Index: 1,
        keepAlive: wahr,
        scrollTop: 0
      }
    },
    {
      Pfad: '/shopping',
      Name: 'Einkaufen',
      Komponente: auflösen => erfordern(['@/views/shopping/index.vue'], auflösen),
      Meta: {
        Titel: 'Warenkorb',
        Index: 1,
        keepAlive: wahr,
        scrollTop: 0
      }
    },
    {
      Pfad: '/detail',
      Name: "Detail",
      Komponente: auflösen => erfordern(['@/views/detail/index.vue'], auflösen),
      Meta: {
        Titel: 'Details',
        Index: 2,
        // keepAlive: wahr,
        // scrollTop: 0
      }
    },

3. Notieren Sie dann in main.js die Position der Bildlaufleiste

router.beforeEach((bis, von, weiter) => {  
  wenn (from.meta.keepAlive) {
    const $wrapper = document.querySelector('.app-wrapper'); // Der äußere Container der Liste sollte darauf achten, das Bildlauffeld zu finden const scrollTop = $wrapper ? $wrapper.scrollTop : 0;
    Konsole.log('scrollTop=', scrollTop)
    von.meta.scrollTop = scrollTop;
  }
  nächste();
});

4. Aktivieren Sie abschließend scrollTop (diese Funktion wird jedes Mal ausgeführt, wenn Sie die Seite aufrufen, und ist nur wirksam, wenn sie in Verbindung mit der Komponente keepAlive verwendet wird). Dort müssen Sie die Position der Bildlaufleiste aufzeichnen.

aktiviert () {
    const scrollTop = this.$route.meta.scrollTop;
    const $wrapper = document.querySelector('.app-wrapper');
    wenn (scrollTop und $wrapper) {
      $wrapper.scrollTop = scrollTop;
    }
  },

Wenn Sie beispielsweise einige Seiten zwischenspeichern und nicht mit ihnen scrollen möchten, können Sie scrollTop auf 0 setzen.

aktiviert() {
    const $wrapper = document.querySelector(".app-wrapper");
    $wrapper.scrollTop = 0;
  },

Beachten Sie, dass beim Scrollen der Seite auch andere Seiten mit Scrollbalken mitscrollen. Sie können dies auf anderen Seiten verarbeiten oder festlegen, ob der Standort von der Detailseite zur Listenseite zwischengespeichert werden soll. Wenn nicht, kehren Sie nach oben zurück, achten Sie jedoch auf die Verwendung der Routing-Hook-Funktion.

Das könnte Sie auch interessieren:
  • Das Problem und die Lösung der Listenkomponente, die beim Wechseln der Registerkarte Vue vantUI kein Ladeereignis auslöst
  • Verwendung von Van-List in Vant
  • Beheben Sie die Fallstricke bei der Verwendung des Vant-Frameworks für H5 (zum Aktualisieren nach unten ziehen, zum Laden nach oben ziehen usw.).
  • Ein Fehler im Vant-UI-Framework (Lösung des Problems, dass Onload nach dem Umschalten nicht ausgelöst wird)
  • Fallstricke und Lösungen bei der Verwendung der Vant-Framework-Listenkomponente

<<:  Verstehen Sie das Prinzip des Seitenersetzungsalgorithmus anhand von Codebeispielen

>>:  So aktivieren Sie das Root-Konto in Ubuntu 20.04

Artikel empfehlen

Einführung in semantische HTML-Tags

In den letzten Jahren war DIV+CSS bei der Website-...

Detaillierte Erläuterung der Kubernetes-Pod-Orchestrierung und des Lebenszyklus

Inhaltsverzeichnis K8S Master Grundlegende Archit...

Zusammenfassung der zehn häufigsten Probleme bei MySQL-Indexfehlern

Inhaltsverzeichnis Hintergrund 1. Die Abfragebedi...

Analyse des Prinzips der MySQL-Indexlängenbeschränkung

Dieser Artikel stellt hauptsächlich die Analyse d...

CSS3 erzielt einen coolen Karusselleffekt mit geschnittenen Bildern

Heute lernen wir, wie man mit CSS eine coole Bild...

Beispiel für die Validierung eines JavaScript-Formulars

HTML-Formulare werden häufig verwendet, um Benutz...

JS implementiert die Drag- und Platzhalterfunktionen von Elementen

In diesem Blogbeitrag geht es um eine Schwierigke...

Stil-Trigger-Effekt des Webseiten-Eingabefelds

<br />Dieses Beispiel untersucht hauptsächli...

Docker-Konfiguration Alibaba Cloud Container Service-Betrieb

Konfigurieren des Alibaba Cloud Docker Container ...

Praktische TypeScript-Tipps, die Sie vielleicht nicht kennen

Inhaltsverzeichnis Vorwort Funktionsüberladung Zu...