Dieses Code-Snippet fügt einer Webseite einen Lesefortschrittsbalken hinzu. Die Leiste stellt visuell den Scroll-Fortschritt des Benutzers durch den Hauptinhaltsbereich dar. Lassen Sie uns die Funktionsweise aufschlüsseln und verbessern.
Der Code versucht, den Fortschritt basierend auf der Bildlaufposition relativ zur Gesamthöhe des main
-Elements zu berechnen. Es gibt jedoch mehrere Probleme:
-
Unvollständiger Code: Der bereitgestellte Code ist abgeschnitten. Es fehlt der entscheidende Teil, der den Fortschrittsbalken tatsächlich erstellt und visuell aktualisiert. Das
div
wird erstellt, aber es ist keine Styling- oder Fortschrittsaktualisierungslogik vorhanden. -
Falsche Höhenberechnung: Die Berechnung von
totalHeight
kann je nach Seitenstruktur ungenau sein. Die Verwendung vonouterHeight(true)
schließt Ränder ein, die möglicherweise unerwünscht sind. Es berücksichtigt auch keinen dynamischen Inhalt, der die Höhe nach der ersten Berechnung ändern könnte. - Fehlende Fortschrittsaktualisierung: Es gibt keinen Code, um den Fortschrittsbalken zu aktualisieren, während der Benutzer scrollt. Die Berechnung erfolgt nur einmal, wenn das Dokument fertig ist.
-
Problem mit der Fußzeilenhöhe: Das Subtrahieren von
footerHeight
kann zu einer falschen Fortschrittsberechnung führen, wenn die Fußzeile fest ist oder den Hauptinhalt überlappt.
Hier ist eine verbesserte Version, die diese Probleme behebt:
$(document).ready(function() { if ($('body').hasClass('single')) { const progressBar = $('<div id="reading-progress"></div>'); $('header').after(progressBar); let totalHeight = $('main').height(); // Use height() for more accurate calculation let windowHeight = $(window).height(); $(window).on('scroll', function() { let scrollTop = $(this).scrollTop(); let progress = (scrollTop / (totalHeight - windowHeight)) * 100; // Adjust for window height progress = Math.min(progress, 100); // Cap progress at 100% $('#reading-progress').css('width', progress + '%'); }); } });
Dieser verbesserte Code:
-
Erstellt einen Fortschrittsbalken: Es wird dynamisch ein
div
mit der IDreading-progress
erstellt, der als Fortschrittsbalken fungiert. -
Verwendet
height()
: Es verwendetheight()
anstelle vonouterHeight(true)
für eine genauere Berechnung der Hauptinhaltshöhe. -
Verarbeitet Scroll-Ereignisse: Es verwendet
$(window).on('scroll', ...)
, um die Breite des Fortschrittsbalkens kontinuierlich zu aktualisieren, während der Benutzer scrollt. - Berechnet den Fortschritt genau: Die Fortschrittsberechnung berücksichtigt die sichtbare Fensterhöhe und verhindert, dass der Balken 100 % überschreitet.
-
Fügt CSS hinzu (erforderlich): Sie müssen CSS hinzufügen, um das
#reading-progress
-Div zu formatieren. Zum Beispiel:
#reading-progress { height: 5px; /* Adjust height as needed */ background-color: #007bff; /* Adjust color as needed */ position: fixed; top: 0; left: 0; width: 0; /* Initially 0% width */ z-index: 1000; /* Ensure it's on top */ }
Denken Sie daran, jQuery in Ihr Projekt einzubinden, damit dieser Code funktioniert. Dieser überarbeitete Code bietet einen robusteren und genaueren Lesefortschrittsbalken. Weitere Verfeinerungen könnten die Handhabung von Randgehäusen und das Hinzufügen eines anspruchsvolleren Designs umfassen.
Das obige ist der detaillierte Inhalt vonLesefortschrittsbalken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Dies ist der 3. Beitrag in einer kleinen Serie, die wir in Form von Barrierefreiheit gemacht haben. Wenn Sie den zweiten Beitrag verpasst haben, lesen Sie "Verwalten des Benutzerfokus mit: Fokus-Sichtbar". In

Dieses Tutorial zeigt, dass professionelle JavaScript-Formulare mithilfe des Frameworks Smart Forms erstellt werden (Hinweis: Nicht mehr verfügbar). Während der Rahmen selbst nicht verfügbar ist, bleiben die Prinzipien und Techniken für andere Formbauer relevant.

Die CSS-Box-Shadow- und Umrisseigenschaften haben Thema gewonnen. JSON-Unterstützung in WordPress 6.1. Sei ein paar Beispiele für die Funktionsweise in realen Themen und welche Optionen wir diese Stile auf WordPress -Blöcke und Elemente anwenden müssen.

In diesem Artikel werden die auf dem Envato -Markt verfügbaren Top -Skripte für PHP -Formulierungen untersucht und deren Funktionen, Flexibilität und Design verglichen. Lassen Sie uns vor dem Tauchen in bestimmte Optionen verstehen, was ein PHP -Formular Builder ist und warum Sie einen verwenden würden. Eine PHP -Form

Wenn Sie kürzlich mit GraphQL gearbeitet oder seine Vor- und Nachteile überprüft haben, haben Sie zweifellos Dinge wie "GraphQL nicht unterstützen Caching" oder gehört

Die Sufelte Transition -API bietet eine Möglichkeit, Komponenten zu beleben, wenn sie das Dokument eingeben oder verlassen, einschließlich benutzerdefinierter Svelte -Übergänge.

Wie viel Zeit damit, die Inhaltspräsentation für Ihre Websites zu entwerfen? Wenn Sie einen neuen Blog -Beitrag schreiben oder eine neue Seite erstellen, denken Sie darüber nach

In diesem Artikel werden wir in die Welt der Scrollbars eintauchen. Ich weiß, es klingt nicht zu glamourös, aber vertrau mir, eine gut gestaltete Seite geht Hand in Hand


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor
