Sanftes Scrollen kann das Benutzererlebnis beim Navigieren durch Ihre Webseite mithilfe von Ankerlinks erheblich verbessern. Durch die Beseitigung störender Sprünge und die Bereitstellung eines nahtlosen Übergangs verbessern Sie die Zugänglichkeit und Gesamtästhetik der Seite.
Neueste Versionen der wichtigsten Browser unterstützen jetzt natives, reibungsloses Scrollen für Ankerlinks. Sie können diese Funktionalität mit dem folgenden Code implementieren:
document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', e => { e.preventDefault(); document.querySelector(anchor.getAttribute('href')).scrollIntoView({ behavior: 'smooth' }); }); });
Für die Kompatibilität mit älteren Browsern bietet jQuery eine zuverlässige Lösung:
$(document).on('click', 'a[href^="#"]', event => { event.preventDefault(); $('html, body').animate({ scrollTop: $($.attr(this, 'href')).offset().top }, 500); });
Wenn das Zielelement keine ID hat, aber namentlich verknüpft ist, verwenden Sie Folgendes Code:
$('a[href^="#"]').click(function () { $('html, body').animate({ scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top }, 500); return false; });
Aus Effizienzgründen wird empfohlen, den $('html, body')-Selektor zwischenzuspeichern:
var $root = $('html, body'); $('a[href^="#"]').click(function () { $root.animate({ scrollTop: $( $.attr(this, 'href') ).offset().top }, 500); return false; });
Um die URL während der Scroll-Animation zu aktualisieren, fügen Sie den folgenden Code in die ein Rückruf:
var $root = $('html, body'); $('a[href^="#"]').click(function() { var href = $.attr(this, 'href'); $root.animate({ scrollTop: $(href).offset().top }, 500, () => { window.location.hash = href; }); return false; });
Durch die Integration dieser Techniken können Sie Ihren Website-Benutzern ein nahtloses und ansprechendes Navigationserlebnis bieten, sodass das Navigieren durch den Seiteninhalt zum Vergnügen wird.
Das obige ist der detaillierte Inhalt vonWie kann ich reibungsloses Scrollen für Ankerlinks auf meiner Website implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!