657 Stimmen

Sanfter Bildlauf beim Anklicken eines Ankerlinks

Ich habe einige Hyperlinks auf meiner Seite. Eine FAQ, die die Benutzer lesen, wenn sie meinen Hilfebereich besuchen.

Mit Hilfe von Anker-Links kann ich die Seite zu dem Anker scrollen lassen und die Benutzer dorthin führen.

Gibt es eine Möglichkeit, den Bildlauf reibungslos zu gestalten?

Aber beachten Sie, dass er eine benutzerdefinierte JavaScript-Bibliothek verwendet. Vielleicht bietet jQuery etwas wie dies in eingebettet?

26voto

Musfiq Shanta Punkte 702

Sie brauchen keine Js, sondern verwenden einfach scroll-behavior: smooth at html tag Das ist es

html{
scroll-behavior: smooth;
}

24voto

Philipp Sander Punkte 9931
$('a[href*=#]').click(function(event){
    $('html, body').animate({
        scrollTop: $( $.attr(this, 'href') ).offset().top
    }, 500);
    event.preventDefault();
});

das hat bei mir perfekt funktioniert

13voto

sarah bouyer Punkte 121

Ich schlage Ihnen vor, diesen allgemeinen Code zu erstellen:

$('a[href^="#"]').click(function(){

var the_id = $(this).attr("href");

    $('html, body').animate({
        scrollTop:$(the_id).offset().top
    }, 'slow');

return false;});

Einen sehr guten Artikel können Sie hier lesen: jquery-effet-smooth-scroll-defilement-fluide

11voto

Blackbam Punkte 14548

Es gibt hier bereits viele gute Antworten - aber sie alle lassen die Tatsache außer Acht, dass leere Anker müssen ausgeschlossen werden . Andernfalls erzeugen diese Skripte JavaScript-Fehler, sobald ein leerer Anker angeklickt wird.

Meiner Meinung nach lautet die richtige Antwort wie folgt:

$('a[href*=\\#]:not([href$=\\#])').click(function() {
    event.preventDefault();

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

11voto

Es gibt eine systemeigene Unterstützung für den reibungslosen Bildlauf bei Hash-Id-Bildläufen.

html {
  scroll-behavior: smooth;
}

Sie können es sich ansehen: https://www.w3schools.com/howto/howto_css_smooth_scroll.asp#section2

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X