ホームページ > 記事 > ウェブフロントエンド > HTML、CSS、jQuery を使用して応答性の高いスクロール ナビゲーションを作成する方法
HTML、CSS、jQuery を使用して応答性の高いスクロール ナビゲーションを作成する方法
ナビゲーション メニューは Web デザインにおいて非常に重要な役割を果たしており、ユーザーが素早く場所を見つけるのに役立ちます。をクリックして、別の Web ページのセクションに移動します。レスポンシブ Web サイトの場合、ナビゲーション メニューがさまざまな画面サイズで正常に表示および動作できることを確認する必要があります。この記事では、HTML、CSS、jQuery を使用して応答性の高いスクロール ナビゲーションを作成する方法を紹介し、詳細なコード例を示します。
1. HTML 構造
まず、ナビゲーション メニューの HTML 構造を定義する必要があります。コンテナ要素内にナビゲーション メニュー リストを作成し、各ナビゲーション メニュー項目に対応するアンカー ポイントを設定して、ページ内でスムーズなスクロール効果を実現します。サンプル HTML コードは次のとおりです。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>响应式滚动导航</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div class="container"> <ul class="navigation"> <li><a href="#section1">Section 1</a></li> <li><a href="#section2">Section 2</a></li> <li><a href="#section3">Section 3</a></li> <li><a href="#section4">Section 4</a></li> </ul> </div> <div id="section1"> <!-- 第一部分内容 --> </div> <div id="section2"> <!-- 第二部分内容 --> </div> <div id="section3"> <!-- 第三部分内容 --> </div> <div id="section4"> <!-- 第四部分内容 --> </div> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script src="script.js"></script> </body> </html>
外部 CSS スタイル ファイル style.css
と外部 JavaScript ファイル script.js
を導入していることに注意してください。
2. CSS スタイル
次に、ナビゲーション メニューのスタイルとさまざまな画面サイズでのレイアウトを設定する必要があります。サンプル CSS スタイル コードは次のとおりです:
.container { width: 100%; background-color: #f0f0f0; position: fixed; top: 0; z-index: 999; } .navigation { list-style-type: none; margin: 0; padding: 0; overflow: hidden; } .navigation li { float: left; } .navigation li a { display: block; color: #000; text-align: center; padding: 14px 16px; text-decoration: none; } .navigation li a:hover { background-color: #ddd; } #section1, #section2, #section3, #section4 { height: 100vh; } @media (max-width: 600px) { .navigation li { float: none; } }
3. jQuery スクリプト
最後に、jQuery を使用して、スクロール ナビゲーションの効果を実現するコードを作成します。 jQuery スクリプトのサンプル コードは次のとおりです。
$(document).ready(function() { $('.navigation a').on('click', function(event) { event.preventDefault(); // 获取目标锚点元素的位置 var target = $(this.hash); var targetPosition = target.offset().top; // 平滑滚动到目标位置 $('html, body').animate({ scrollTop: targetPosition }, 800); }); $(window).scroll(function() { // 获取当前滚动位置 var scrollPosition = $(window).scrollTop(); // 高亮显示当前所在的导航菜单项 $('.navigation a').each(function() { var currentLink = $(this); var targetSection = $(currentLink.attr('href')); var targetSectionTop = targetSection.offset().top; var targetSectionBottom = targetSectionTop + targetSection.outerHeight(); if (scrollPosition >= targetSectionTop && scrollPosition < targetSectionBottom) { currentLink.addClass('active'); } else { currentLink.removeClass('active'); } }); }); });
上記のコードでは、次のことを実行しました。
スクロール中に現在のナビゲーション メニュー項目を強調表示し続けるために、CSS スタイルで .active
クラスも定義します。必要に応じて、.active
クラスのスタイルを設定できます。
上記は、HTML、CSS、jQuery を使用して応答性の高いスクロール ナビゲーションを作成する方法の詳細なコード例です。ニーズに応じて変更し、さまざまなデザインやレイアウトに合わせて最適化できます。この記事がお役に立てば幸いです!
以上がHTML、CSS、jQuery を使用して応答性の高いスクロール ナビゲーションを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。