Heim > Web-Frontend > js-Tutorial > Wie kann ich mit Ankerlinks ein reibungsloses Scrollen erreichen?

Wie kann ich mit Ankerlinks ein reibungsloses Scrollen erreichen?

Mary-Kate Olsen
Freigeben: 2024-12-11 18:20:16
Original
586 Leute haben es durchsucht

How Can I Achieve Smooth Scrolling with Anchor Links?

Reibungsloses Scrollen beim Klicken auf einen Ankerlink

Beim Navigieren auf einer Webseite mit Ankerlinks erwarten Benutzer einen nahtlosen Übergang zum Zielabschnitt. Das standardmäßige Scrollverhalten kann jedoch abrupt sein. In diesem Artikel werden Techniken zum Erzielen eines reibungslosen Scrollens beim Klicken auf Ankerlinks erläutert.

Native Unterstützung

Browser wie Chrome und Firefox haben native Unterstützung für reibungsloses Scrollen eingeführt. Dies wird über die Eigenschaft „behavior“ mit dem Wert „smooth“ beim Scrollen in die Ansicht umgesetzt:

document.querySelectorAll('a[href^="#"]').forEach(anchor => {
    anchor.addEventListener('click', function (e) {
        e.preventDefault();

        document.querySelector(this.getAttribute('href')).scrollIntoView({
            behavior: 'smooth'
        });
    });
});
Nach dem Login kopieren

jQuery-Plugin

Für ältere Browser ein jQuery-Plugin kann die Scroll-Animation glätten. Diese Technik verwendet die „Animate“-Methode, um die Seite in den Zielabschnitt zu verschieben:

$(document).on('click', 'a[href^="#"]', function (event) {
    event.preventDefault();

    $('html, body').animate({
        scrollTop: $($.attr(this, 'href')).offset().top
    }, 500);
});
Nach dem Login kopieren

Erweiterte Technik

Wenn dem Zielelement eine ID fehlt, gilt Folgendes Es kann ein modifiziertes jQuery-Plugin verwendet werden:

$('a[href^="#"]').click(function () {
    $('html, body').animate({
        scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top
    }, 500);

    return false;
});
Nach dem Login kopieren

Leistung Optimierung

Das Zwischenspeichern des Selektors „$('html, body')“ innerhalb einer Variablen verbessert die Leistung:

var $root = $('html, body');

$('a[href^="#"]').click(function () {
    $root.animate({
        scrollTop: $( $.attr(this, 'href') ).offset().top
    }, 500);

    return false;
});
Nach dem Login kopieren

URL-Hash erhalten bleiben

Um den URL-Hash beim reibungslosen Scrollen zu aktualisieren, verwenden Sie die Funktion „animieren“. Rückruf:

var $root = $('html, body');

$('a[href^="#"]').click(function() {
    var href = $.attr(this, 'href');

    $root.animate({
        scrollTop: $(href).offset().top
    }, 500, function () {
        window.location.hash = href;
    });

    return false;
});
Nach dem Login kopieren

Durch die Implementierung einer dieser Techniken können Sie beim Navigieren auf Ihrer Seite mithilfe von Ankerlinks ein ausgefeiltes und benutzerfreundliches Scroll-Erlebnis bieten.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Ankerlinks ein reibungsloses Scrollen erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage