Beispiel für die Verwendung von Store in Vue3 zum Aufzeichnen der Bildlaufposition

Beispiel für die Verwendung von Store in Vue3 zum Aufzeichnen der Bildlaufposition

Gesamteffekt

Wenn Sie durch die Homepage-Liste scrollen und die Detailseite aufrufen, können Sie beim Zurückwechseln zur Homepage zum zuvor durchsuchten Ort zurückkehren.

Achten Sie auf Container-Scroll-Ereignisse

Definieren Sie ein Scroll-Ereignis und binden Sie es an das Scroll-Ereignis des Containers. Ich habe hier eine gewisse Drosselung vorgenommen.

const savePosY = () => {
      wenn(Zustand.Timer) return;
      Zustand.Timer = setzeTimeout(() => {
        let node = document.querySelector(".contentWrapper");
        //Scrollposition aufzeichnenstore.commit("setY",node.scrollTop)
        Zustand.Timer = null;
        Zeitüberschreitung löschen(Zustand.Zeitgeber);
      },100)

Holen Sie sich den Container in die Halterung, um das Ereignis zu binden

beimMounted(() => {
    let contentWrapper = document.querySelector(".contentWrapper");
    contentWrapper.addEventListener("scrollen",savePosY);
})

Konfiguration im Store

Der Speicher ist relativ einfach und enthält nur einen Status: y und Mutationen: setY

Standard exportieren {
    Zustand:{
         und: 0
    },
    Mutationen:
        setY(Zustand,Wert){
            Zustand.y = Wert;
        }
    }
}

Holen Sie sich die Scrollposition, wenn die Seite zurückspringt

Führen Sie die Operation auch in onMounted durch, da sonst das Containerelement nicht abgerufen werden kann. Da DOM in Vue asynchron gerendert wird, müssen wir die Operation in nextTick durchführen, um effektiv zu sein

nextTick(() => { contentWrapper.scrollTop = store.state.y; })

endlich

Das Obige ist der vollständige Inhalt dieses Artikels. Wenn etwas falsch ist oder eine bessere Methode vorliegt, können Sie uns dies gerne mitteilen und darauf hinweisen.

Oben sind die Einzelheiten des Beispiels, wie vue3 Store verwendet, um die Scrollposition aufzuzeichnen. Weitere Informationen dazu, wie Vue die Scrollposition aufzeichnet, finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Keep-alive in Vue implementiert zurück ohne Aktualisierung und behält die Scrollposition bei
  • Lösen Sie das Problem, dass Vue die Bildlaufposition nicht festlegen kann
  • So merken Sie sich die Scrollposition beim Aufrufen der Detailseite in Vue (Keep-Alive)
  • Lösung für den Fehler, dass die Seiten-Scrollposition nach dem Routenwechsel in Vue2.0 unverändert bleibt
  • Der Vue-Scroller gibt die Seite zurück, um sich den Beispielcode für die Bildlaufposition zu merken
  • Vue-Scroller-Beispielcode zum Aufzeichnen der Bildlaufposition
  • So lösen Sie das Problem der festen Bildlaufposition der Vue-Seite

<<:  So beheben Sie den Fehler "ERROR 1045 (28000)" beim Anmelden bei MySQL

>>:  So zeigen Sie Docker-Containerprotokolle an und bereinigen sie (getestet und effektiv)

Artikel empfehlen

Teilen Sie einige ungewöhnliche, aber nützliche JS-Techniken

Vorwort Programmiersprachen enthalten normalerwei...

Einführung in die Verwendung von Alt- und Titelattributen von HTML-Img-Tags

Wenn Browser-Anbieter die Standards umgehen und ei...

Lösen Sie das Problem des MySQL Threads_running-Surge und der langsamen Abfrage

Inhaltsverzeichnis Hintergrund Problembeschreibun...

JavaScript-Dom-Objektoperationen

Inhaltsverzeichnis 1. Kern 1. Holen Sie sich den ...

Weitere Möglichkeiten zur Verwendung von spitzen Klammern in Bash

Vorwort In diesem Artikel werden wir weitere Verw...

Analyse und Beschreibung von Netzwerkkonfigurationsdateien unter Ubuntu-System

Ich bin heute auf ein seltsames Netzwerkproblem g...

Zwei gängige Lösungen für den HTML-Textüberlauf zeigen Auslassungszeichen an

Methode 1: Verwenden Sie zur Lösung die CSS-Überl...

So ändern Sie die Systemsprache von CentOS7 in vereinfachtes Chinesisch

veranschaulichen Bei einer Eigeninstallation des ...