Über den Fehler des Better-Scroll-Plug-Ins, der nicht gleiten kann (gelöst durch Plug-In im Jahr 2021)

Über den Fehler des Better-Scroll-Plug-Ins, der nicht gleiten kann (gelöst durch Plug-In im Jahr 2021)

Better-Scroll-Bildlaufprinzip

Als übergeordneter Container erhöht sich die Höhe des Wrappers mit der Größe des Inhalts. Dann, wenn
Wenn die Höhe des Inhalts die Höhe des übergeordneten Containers nicht überschreitet, kann er nicht gescrollt werden. Sobald er die Höhe des übergeordneten Containers überschreitet, können wir den Inhaltsbereich scrollen.
BetterScroll übernimmt standardmäßig das Scrollen des ersten untergeordneten Elements (Inhalt) des Containers (Wrapper) und ignoriert andere Elemente, sodass auch die folgende Seitenstruktur gegeben ist

<div Klasse="Wrapper">
 <ul Klasse="Inhalt">
  <li>...</li>
  <li>...</li>
  ...
 </ul>
 <!-- Sie können hier ein anderes DOM einfügen, das Scrollen wird dadurch jedoch nicht beeinflusst-->
</div>

Deshalb sprechen wir hier nur über den wichtigsten Punkt! ! !

Da圖片需要加載, ist der Initialisierungszeitpunkt von better-scroll sehr wichtig, da bei der Initialisierung die Höhe und Breite des übergeordneten Elements und des untergeordneten Elements berechnet werden. Wenn das Bild noch nicht geladen und initialisiert wurde, gibt es eine große Abweichung zwischen der tatsächlich berechneten Höhe und Ihrer tatsächlichen Höhe (die Netzwerkgeschwindigkeit wirkt sich auch darauf aus ...)

Dies ist der Hauptgrund, warum alle Benutzer nicht scrollen können.

Ich bin vor ein paar Tagen auf dieses Problem gestoßen und das Better-Scroll-Dokument war nicht zugänglich. Das Dokument auf GitHub war nur grob nutzbar. Ich habe einen ganzen Tag damit verbracht, nach einer Lösung zu suchen. Im Internet sind verschiedene Methoden aufgetaucht. Die beste Lösung:

Durch Plugin: better-scroll/observe-dom

BetterScroll berechnet die scrollbare Höhe oder Breite dynamisch. Sie müssen die Methode „refresh()“ nicht manuell aufrufen, wenn sich die Höhe oder Breite ändert. Das Plugin erledigt dies für Sie über MutationObserver .

Wenn Ihr aktueller Browser MutationObserver nicht unterstützt, wird er auf die Verwendung von setTimeout herabgestuft.

verwenden

Installieren Sie Abhängigkeiten npm install @better-scroll/observe-dom

BScroll aus „@better-scroll/core“ importieren
importiere ObserveDom von '@better-scroll/observe-dom'
BScroll.use(Dom beobachten)

const bs = new BScroll('.wrapper', {
 observeDOM: wahr
})

Es gibt viele Lösungen für dieses Problem, aber viele Artikel im Internet erklären es nicht klar. Verwenden Sie einfach dieses Plug-In.

Eine andere Lösung besteht darin, das Laden des Bildes abzuhören und refresh() aufzurufen, um die Höhe neu zu berechnen

Vue verwendet das img-Tag und @load="定義一個方法" um auf das Bildladeereignis zu warten. Solange ein Bild geladen wird, wird die von Ihnen definierte Methode einmal aufgerufen.

Schreiben Sie abschließend this.scroll.refresh() in die Methode, um ein Bild zu laden, es einmal zu aktualisieren und die Höhe neu zu berechnen. Gleichzeitig müssen Sie die Anti-Shake-Funktion verwenden, um verschiedene Probleme zu vermeiden, die durch häufige wiederholte Aufrufe verursacht werden.

Damit ist dieser Artikel über die Unfähigkeit des Better-Scroll-Plug-Ins, zu gleiten, abgeschlossen (2021 durch Plug-Ins behoben). Weitere verwandte Inhalte über die Unfähigkeit des Better-Scroll-Plug-Ins, zu gleiten, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Verwendung des Vue-Scrolling-Plugins Better-Scroll
  • So verwenden Sie das Better-Scroll-Plugin in Angular
  • Detaillierte Erklärung des Vue Better-Scroll-Scrolling-Plugins
  • Detaillierte Erklärung zur Verwendung des Vue Better-Scroll-Plugins
  • Detaillierte Erläuterung der Verwendung des Vue-Scroll-Achsen-Plugins Better-Scroll

<<:  Lösung für den Fehler beim Importieren von MySQL Big Data in Navicat

>>:  So richten Sie den Start einer JAR-Anwendung unter CentOS7 ein

Artikel empfehlen

Docker stellt Mysql, .Net6, Sqlserver und andere Container bereit

Inhaltsverzeichnis Installieren Sie Docker unter ...

Vue integriert Tencent TIM Instant Messaging

In diesem Artikel wird hauptsächlich die Integrat...

So ändern Sie die Kodierung in MySQL Version 5.7 unter Windows auf UTF-8

Vorwort Ich habe gerade angefangen, MySQL zu lern...

Analyse des Idea-Compiler-Vue-Einrückungsfehlerproblemszenarios

Projektszenario: Beim Ausführen des Vue-Projekts ...

Beispiel für die Bereitstellung einer Laravel-Anwendung mit Docker

Das in diesem Artikel verwendete PHP-Basisimage i...

Installation und Verwendung von TypeScript und grundlegende Datentypen

Der erste Schritt besteht darin, TypeScript globa...

Zwei Möglichkeiten zur Visualisierung von ClickHouse-Daten mit Apache Superset

Apache Superset ist ein leistungsstarkes BI-Tool,...

Vue implementiert die Anzeige und Ausblendung der dreistufigen Navigation

In diesem Artikelbeispiel wird der spezifische Co...

So versetzen Sie JavaScript in den Ruhezustand oder in den Wartezustand

Inhaltsverzeichnis Überblick Überprüfen von setTi...

Die Verwendung des V-Modells in Vue3-Komponenten und ausführliche Erklärung

Inhaltsverzeichnis Verwenden Sie bidirektionale B...

So zeigen Sie Versionsinformationen in Linux an

So zeigen Sie Versionsinformationen unter Linux a...

Detaillierte Erklärung der Vuex-Umgebung

Inhaltsverzeichnis Erstellen Sie eine Vuex-Umgebu...