アンカー リンクを利用してユーザーを Web ページの特定のセクションに誘導する場合、スムーズなスクロール エクスペリエンスによりユーザーのアクセシビリティとエンゲージメントが向上します。 jQuery には、この効果を実現するための組み込み機能が用意されています。
jQuery を使用してスムーズなスクロールを開始するには、次のコードを使用します。
$(document).on('click', 'a[href^="#"]', function (event) { event.preventDefault(); $('html, body').animate({ scrollTop: $($.attr(this, 'href')).offset().top }, 500); });
最新のブラウザは、アンカー リンクのネイティブ スムーズ スクロールをサポートするようになりました。この動作を次のコードで実装します。
document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); document.querySelector(this.getAttribute('href')).scrollIntoView({ behavior: 'smooth' }); }); });
ID 属性なし: ターゲット要素に ID 属性がないが、名前で識別される場合は、次を使用します。このコード:
$('a[href^="#"]').click(function () { $('html, body').animate({ scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top }, 500); return false; });
パフォーマンス最適化: ドキュメント ルート セレクターをキャッシュしてパフォーマンスを向上させます:
var $root = $('html, body'); $('a[href^="#"]').click(function () { $root.animate({ scrollTop: $( $.attr(this, 'href') ).offset().top }, 500); return false; });
URL 更新: スクロール中に URL を更新するには、このコールバックを使用します:
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; });
以上がjQuery とネイティブ JavaScript を使用してアンカー リンクのスムーズ スクロールを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。